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

#include "generic-match-head.c"

bool
tree_nop_convert (tree t, tree *res_ops)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    CASE_CONVERT:
      {
	tree op0 = TREE_OPERAND (t, 0);
	{
/* #line 102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 (t, 0);
	{
/* #line 105 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 105 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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:;
    }
  {
/* #line 110 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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
tree_power_of_two_cand (tree t, tree *res_ops)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    case INTEGER_CST:
      {
	{
/* #line 554 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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;
      }
    case LSHIFT_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	switch (TREE_CODE (op0))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 556 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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:;
    }
  return false;
}

bool
tree_negate_expr_p (tree t)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    case INTEGER_CST:
      {
	{
/* #line 1196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
/* #line 1196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 NEGATE_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	{
/* #line 1204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 1204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 REAL_CST:
      {
	{
/* #line 1207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
/* #line 1207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
/* #line 1212 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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;
      }
    case MINUS_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 1215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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:;
    }
  return false;
}

bool
tree_truth_valued_p (tree t)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  {
/* #line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 LT_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 1331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	{
/* #line 1333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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:;
    }
  return false;
}

bool
tree_logical_inverted_value (tree t, tree *res_ops)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    case TRUTH_NOT_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	{
/* #line 1335 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	if (tree_truth_valued_p (op0))
	  {
	    {
/* #line 1337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 1339 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	if (tree_truth_valued_p (op0))
	  {
	    if (integer_truep (op1))
	      {
		{
/* #line 1341 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	if (tree_truth_valued_p (op0))
	  {
	    if (integer_truep (op1))
	      {
		{
/* #line 1343 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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:;
    }
  return false;
}

bool
tree_with_possible_nonzero_bits (tree t)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    case INTEGER_CST:
      {
	{
/* #line 1664 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1664, __FILE__, __LINE__);
	  return true;
	}
        break;
      }
    case SSA_NAME:
      {
	{
/* #line 1667 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 1667 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1666, __FILE__, __LINE__);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

bool
tree_with_possible_nonzero_bits2 (tree t, tree *res_ops)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    case BIT_AND_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	if (tree_with_possible_nonzero_bits (op0))
	  {
	    {
/* #line 1671 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1671, __FILE__, __LINE__);
	      res_ops[0] = captures[0];
	      return true;
	    }
	  }
	if (tree_with_possible_nonzero_bits (op1))
	  {
	    {
/* #line 1671 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1671, __FILE__, __LINE__);
	      res_ops[0] = captures[0];
	      return true;
	    }
	  }
        break;
      }
    default:;
    }
if (tree_with_possible_nonzero_bits (t))
  {
    {
/* #line 1669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1669, __FILE__, __LINE__);
      res_ops[0] = captures[0];
      return true;
    }
  }
  return false;
}

bool
tree_with_certain_nonzero_bits2 (tree t, tree *res_ops)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    case INTEGER_CST:
      {
	{
/* #line 1676 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1676, __FILE__, __LINE__);
	  res_ops[0] = captures[0];
	  return true;
	}
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 1678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 1678, __FILE__, __LINE__);
		res_ops[0] = captures[0];
		return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return false;
}

bool
tree_compositional_complex (tree t)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  switch (TREE_CODE (t))
    {
    CASE_CONVERT:
      {
	tree op0 = TREE_OPERAND (t, 0);
	switch (TREE_CODE (op0))
	  {
	  case COMPLEX_EXPR:
	    {
	      tree o20 = TREE_OPERAND (op0, 0);
	      tree o21 = TREE_OPERAND (op0, 1);
	      {
/* #line 2807 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 2807, __FILE__, __LINE__);
		return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case COMPLEX_EXPR:
      {
	tree op0 = TREE_OPERAND (t, 0);
	tree op1 = TREE_OPERAND (t, 1);
	{
/* #line 2807 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 2807, __FILE__, __LINE__);
	  return true;
	}
        break;
      }
    default:;
    }
  return false;
}

bool
tree_double_value_p (tree t)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  {
/* #line 4701 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 4701 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 4700, __FILE__, __LINE__);
	return true;
      }
  }
  return false;
}

bool
tree_float_value_p (tree t)
{
  const tree type = TREE_TYPE (t);
  if (TREE_SIDE_EFFECTS (t)) return false;
  {
/* #line 4722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 4722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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", 4721, __FILE__, __LINE__);
	return true;
      }
  }
  return false;
}

static tree
generic_simplify_1 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (neeq))
{
/* #line 4034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && ptrs_compare_unequal (captures[0], captures[1]))
    {
      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__);
      tree res;
      res =  constant_boolean_node (neeq != EQ_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_2 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0])) && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])))
    {
      {
/* #line 3532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3540 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (fmt.can_represent_integral_type_p (type1) && fmt.can_represent_integral_type_p (type2))
	    {
/* #line 3542 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3543, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (cmp == ORDERED_EXPR, type);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  if (TREE_SIDE_EFFECTS (captures[2]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		  return res;
		}
	      else
		{
/* #line 3544 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2) && type1_signed_p >= type2_signed_p)
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3546, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      {
			tree ops1[1], res;
			ops1[0] = captures[2];
			if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
			  res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
			else
			  res = ops1[0];
			res_op1 = res;
		      }
		      tree res;
		      res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
		      return res;
		    }
		  else
		    {
/* #line 3547 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2) && type1_signed_p <= type2_signed_p)
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3549, __FILE__, __LINE__);
			  tree res_op0;
			  {
			    tree ops1[1], res;
			    ops1[0] = captures[1];
			    if (TREE_TYPE (ops1[0]) != type2)
			      res = fold_build1_loc (loc, NOP_EXPR, type2, ops1[0]);
			    else
			      res = ops1[0];
			    res_op0 = res;
			  }
			  tree res_op1;
			  res_op1 = captures[2];
			  tree res;
			  res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
/* #line 3550 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2) && type1_signed_p == type2_signed_p)
			    {
			      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 res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      res_op1 = captures[2];
			      tree res;
			      res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
			      return res;
			    }
			}
		    }
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_3 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1902, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[2];
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res;
	  res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_4 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_UNSIGNED (type))
    {
      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 res;
      res =  build_zero_cst (type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_5 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (FMAX_ALL))
{
/* #line 2266 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_finite_math_only)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2272, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_6 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      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__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[4];
	      tree res;
	      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_7 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3670, __FILE__, __LINE__);
  tree res;
  res = captures[1];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_8 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (reduc))
{
  {
/* #line 5369 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 int i = single_nonzero_element (captures[1]);
/* #line 5370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (i >= 0)
	{
	  {
/* #line 5371 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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);
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5376, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[3], res;
		  ops2[0] = captures[0];
		  ops2[1] =  size;
		  ops2[2] =  pos;
		  res = fold_build3_loc (loc, BIT_FIELD_REF, elt_type, ops2[0], ops2[1], ops2[2]);
		  ops1[0] = res;
		}
		ops1[1] =  elt;
		res = fold_build2_loc (loc, BIT_AND_EXPR, elt_type, ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	      return res;
	  }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_9 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3238, __FILE__, __LINE__);
  tree res;
  res =  constant_boolean_node (true, type);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_10 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1976 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (!TYPE_OVERFLOW_TRAPS (type))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1977, __FILE__, __LINE__);
	      tree res;
	      res =  build_all_ones_cst (type);
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_11 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (SIN))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4572, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res;
      res = maybe_build_call_expr_loc (loc, SIN, type, 1, res_op0);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_12 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[2];
  tree res;
  res = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
  if (!res)
    return NULL_TREE;
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_13 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (single_use (captures[0]))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3197, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *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 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type))
	    {
/* #line 1928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!CONSTANT_CLASS_P (captures[0]))
		{
/* #line 1929 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (outer_op == PLUS_EXPR)
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1930, __FILE__, __LINE__);
		      tree res_op0;
		      {
			tree ops1[1], res;
			ops1[0] = captures[0];
			res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
			res_op0 = res;
		      }
		      tree res_op1;
		      {
			tree ops1[2], res;
			ops1[0] = captures[2];
			{
			  tree ops2[1], res;
			  ops2[0] = captures[1];
			  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops2[0]);
			  ops1[1] = res;
			}
			res = fold_build2_loc (loc, inner_op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			res_op1 = res;
		      }
		      tree res;
		      res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		  else
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1931, __FILE__, __LINE__);
		      tree res_op0;
		      {
			tree ops1[1], res;
			ops1[0] = captures[0];
			res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
			res_op0 = res;
		      }
		      tree res_op1;
		      {
			tree ops1[2], res;
			ops1[0] = captures[2];
			{
			  tree ops2[1], res;
			  ops2[0] = captures[1];
			  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops2[0]);
			  ops1[1] = res;
			}
			res = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			res_op1 = res;
		      }
		      tree res;
		      res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		}
	    }
	  else
	    {
/* #line 1932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
		{
/* #line 1934 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (outer_op == PLUS_EXPR)
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1935, __FILE__, __LINE__);
		      tree res_op0;
		      {
			tree ops1[2], res;
			ops1[0] = captures[0];
			{
			  tree ops2[2], res;
			  {
			    tree ops3[1], res;
			    ops3[0] = captures[2];
			    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (ops1[0]), ops3[0]);
			    ops2[0] = res;
			  }
			  ops2[1] = captures[1];
			  res = fold_build2_loc (loc, inner_op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			  ops1[1] = res;
			}
			res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			res_op0 = res;
		      }
		      tree res;
		      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1936, __FILE__, __LINE__);
		      tree res_op0;
		      {
			tree ops1[2], res;
			ops1[0] = captures[0];
			{
			  tree ops2[2], res;
			  {
			    tree ops3[1], res;
			    ops3[0] = captures[2];
			    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (ops1[0]), ops3[0]);
			    ops2[0] = res;
			  }
			  ops2[1] = captures[1];
			  res = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			  ops1[1] = res;
			}
			res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			res_op0 = res;
		      }
		      tree res;
		      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
		      return res;
		    }
		}
	      else
		{
/* #line 1940 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (types_match (type, captures[0]))
		    {
		      {
/* #line 1941 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst = const_binop (outer_op == inner_op ? PLUS_EXPR : MINUS_EXPR, type, captures[1], captures[2]);
/* #line 1944 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cst && !TREE_OVERFLOW (cst))
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1945, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  cst;
			      tree res;
			      res = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
			      return res;
			    }
			  else
			    {
/* #line 1947 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (INTEGRAL_TYPE_P (type) && cst && wi::to_wide (cst) == wi::min_value (type))
				{
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1949, __FILE__, __LINE__);
				  tree res_op0;
				  res_op0 = captures[0];
				  tree res_op1;
				  res_op1 =  wide_int_to_tree (type, wi::to_wide (cst));
				  tree res;
				  res = fold_build2_loc (loc, neg_inner_op, type, res_op0, res_op1);
				  return res;
				}
			      else
				{
				  {
/* #line 1951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
/* #line 1952 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (utype)
					{
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1953, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[2], res;
					    {
					      tree ops2[1], res;
					      ops2[0] = captures[0];
					      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, ops2[0]);
					      ops1[0] = res;
					    }
					    {
					      tree ops2[1], res;
					      ops2[0] =  drop_tree_overflow (cst);
					      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, ops2[0]);
					      ops1[1] = res;
					    }
					    res = fold_build2_loc (loc, inner_op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					    res_op0 = res;
					  }
					  tree res;
					  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
					  return res;
					}
				  }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_15 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3242, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = unshare_expr (captures[0]);
  tree res_op1;
  res_op1 = captures[0];
  tree res;
  res = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 1381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_17 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_18 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      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__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[4];
	      tree res;
	      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_19 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1610, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_20 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (maxmin))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2288, __FILE__, __LINE__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[3];
    res = fold_build2_loc (loc, maxmin, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_21 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 1397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1398, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] = captures[1];
	res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_22 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (sq), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && ! flag_errno_math)
    {
/* #line 3387 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
	{
/* #line 3390 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR)
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3391, __FILE__, __LINE__);
	      tree res;
	      res =  constant_boolean_node (false, type);
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      if (TREE_SIDE_EFFECTS (captures[1]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	      return res;
	    }
	  else
	    {
/* #line 3394 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cmp == NE_EXPR || !HONOR_NANS (captures[0]))
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3395, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (true, type);
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	      else
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3397, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  res_op1 =  build_real (TREE_TYPE (captures[0]), dconst0);
		  tree res;
		  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	    }
	}
      else
	{
/* #line 3398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0))
	    {
/* #line 3401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cmp == LT_EXPR)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3402, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (false, type);
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	      else
		{
/* #line 3404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == GE_EXPR && !HONOR_NANS (captures[0]))
		    {
		      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 res;
		      res =  constant_boolean_node (true, type);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      if (TREE_SIDE_EFFECTS (captures[1]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		      return res;
		    }
		  else
		    {
/* #line 3407 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  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 res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 = captures[1];
			  tree res;
			  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3416, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 = captures[1];
			  tree res;
			  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
			  return res;
			}
		    }
		}
	    }
	  else
	    {
/* #line 3417 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if ((cmp == LT_EXPR || cmp == LE_EXPR || cmp == GT_EXPR || cmp == GE_EXPR) && !REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && !HONOR_SIGN_DEPENDENT_ROUNDING (TREE_TYPE (captures[0])))
		{
		  {
/* #line 3424 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 REAL_VALUE_TYPE c2;
 enum tree_code ncmp = cmp;
 const real_format *fmt = REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0])));
 real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
 real_convert (&c2, fmt, &c2);
 if (!REAL_VALUE_ISINF (c2)) { tree c3 = fold_const_call (CFN_SQRT, TREE_TYPE (captures[0]), build_real (TREE_TYPE (captures[0]), c2));
 if (c3 == NULL_TREE || TREE_CODE (c3) != REAL_CST) ncmp = ERROR_MARK;
 else if ((cmp == LT_EXPR || cmp == GE_EXPR) && real_less (&TREE_REAL_CST (c3), &TREE_REAL_CST (captures[1]))) ncmp = cmp == LT_EXPR ? LE_EXPR : GT_EXPR;
 else if ((cmp == LE_EXPR || cmp == GT_EXPR) && real_less (&TREE_REAL_CST (captures[1]), &TREE_REAL_CST (c3))) ncmp = cmp == LE_EXPR ? LT_EXPR : GE_EXPR;
 else { REAL_VALUE_TYPE c2alt, tow;
 if (cmp == LT_EXPR || cmp == GE_EXPR) tow = dconst0;
 else real_inf (&tow);
 real_nextafter (&c2alt, fmt, &c2, &tow);
 real_convert (&c2alt, fmt, &c2alt);
 if (REAL_VALUE_ISINF (c2alt)) ncmp = ERROR_MARK;
 else { c3 = fold_const_call (CFN_SQRT, TREE_TYPE (captures[0]), build_real (TREE_TYPE (captures[0]), c2alt));
 if (c3 == NULL_TREE || TREE_CODE (c3) != REAL_CST) ncmp = ERROR_MARK;
 else if (real_equal (&TREE_REAL_CST (c3), &TREE_REAL_CST (captures[1]))) c2 = c2alt;
 } } }/* #line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == GT_EXPR || cmp == GE_EXPR)
			{
/* #line 3475 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (REAL_VALUE_ISINF (c2))
			    {
/* #line 3477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (HONOR_INFINITIES (captures[0]))
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3478, __FILE__, __LINE__);
				  tree res_op0;
				  res_op0 = captures[0];
				  tree res_op1;
				  res_op1 =  build_real (TREE_TYPE (captures[0]), c2);
				  tree res;
				  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  return res;
				}
			      else
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3479, __FILE__, __LINE__);
				  tree res;
				  res =  constant_boolean_node (false, type);
				  if (TREE_SIDE_EFFECTS (captures[0]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  return res;
				}
			    }
			  else
			    {
/* #line 3481 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (ncmp != ERROR_MARK)
				{
/* #line 3482 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (ncmp == GE_EXPR)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3483, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), c2);
				      tree res;
				      res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
				  else
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3484, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), c2);
				      tree res;
				      res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
				}
			    }
			}
		      else
			{
/* #line 3486 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (REAL_VALUE_ISINF (c2))
			    {
/* #line 3490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0]))
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3491, __FILE__, __LINE__);
				  tree res;
				  res =  constant_boolean_node (true, type);
				  if (TREE_SIDE_EFFECTS (captures[0]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  return res;
				}
			      else
				{
/* #line 3494 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (! HONOR_NANS (captures[0]))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3495, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), c2);
				      tree res;
				      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
				  else
				    {
/* #line 3498 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (! HONOR_INFINITIES (captures[0]))
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3499, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  build_real (TREE_TYPE (captures[0]), dconst0);
					  tree res;
					  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  return res;
					}
				      else
					{
/* #line 3501 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					  if (1)
					    {
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3502, __FILE__, __LINE__);
					      if (! tree_invariant_p (captures[0])) return NULL_TREE;
					      tree res_op0;
					      {
						tree ops1[2], res;
						ops1[0] = unshare_expr (captures[0]);
						ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
						res = fold_build2_loc (loc, GE_EXPR, type, ops1[0], ops1[1]);
						res_op0 = res;
					      }
					      tree res_op1;
					      {
						tree ops1[2], res;
						ops1[0] = captures[0];
						ops1[1] =  build_real (TREE_TYPE (captures[0]), c2);
						res = fold_build2_loc (loc, NE_EXPR, type, ops1[0], ops1[1]);
						res_op1 = res;
					      }
					      tree res;
					      res = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
					      if (TREE_SIDE_EFFECTS (captures[1]))
						res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					      return res;
					    }
					}
				    }
				}
			    }
			  else
			    {
/* #line 3506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (ncmp != ERROR_MARK && ! HONOR_NANS (captures[0]))
				{
/* #line 3507 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (ncmp == LT_EXPR)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3508, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), c2);
				      tree res;
				      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
				  else
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3509, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), c2);
				      tree res;
				      res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
				}
			      else
				{
/* #line 3511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (ncmp != ERROR_MARK &&1)
				    {
/* #line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (ncmp == LT_EXPR)
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3513, __FILE__, __LINE__);
					  if (! tree_invariant_p (captures[0])) return NULL_TREE;
					  tree res_op0;
					  {
					    tree ops1[2], res;
					    ops1[0] = unshare_expr (captures[0]);
					    ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
					    res = fold_build2_loc (loc, GE_EXPR, type, ops1[0], ops1[1]);
					    res_op0 = res;
					  }
					  tree res_op1;
					  {
					    tree ops1[2], res;
					    ops1[0] = captures[0];
					    ops1[1] =  build_real (TREE_TYPE (captures[0]), c2);
					    res = fold_build2_loc (loc, LT_EXPR, type, ops1[0], ops1[1]);
					    res_op1 = res;
					  }
					  tree res;
					  res = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  return res;
					}
				      else
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3516, __FILE__, __LINE__);
					  if (! tree_invariant_p (captures[0])) return NULL_TREE;
					  tree res_op0;
					  {
					    tree ops1[2], res;
					    ops1[0] = unshare_expr (captures[0]);
					    ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
					    res = fold_build2_loc (loc, GE_EXPR, type, ops1[0], ops1[1]);
					    res_op0 = res;
					  }
					  tree res_op1;
					  {
					    tree ops1[2], res;
					    ops1[0] = captures[0];
					    ops1[1] =  build_real (TREE_TYPE (captures[0]), c2);
					    res = fold_build2_loc (loc, LE_EXPR, type, ops1[0], ops1[1]);
					    res_op1 = res;
					  }
					  tree res;
					  res = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  return res;
					}
				    }
				}
			    }
			}
		  }
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_23 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3844 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3845, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  if (TREE_TYPE (ops2[0]) != TREE_TYPE (res_op0))
	    res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops2[0]);
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  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 res;
  res =  constant_boolean_node (op == NE_EXPR ? true : false, type);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_25 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4902 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4903, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[2];
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[4];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
	  {
/* #line 4904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4905, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[2];
		  if (TREE_TYPE (ops2[0]) != utype)
		    res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[4];
		  if (TREE_TYPE (ops2[0]) != utype)
		    res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	  }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_26 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0]))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3225, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (true, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  else
    {
/* #line 3226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (cmp != EQ_EXPR)
	{
	  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 res_op0;
	  res_op0 = unshare_expr (captures[0]);
	  tree res_op1;
	  res_op1 = captures[0];
	  tree res;
	  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_27 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2505, __FILE__, __LINE__);
	      tree res;
	      res =  build_int_cst (type, 0);
	      return res;
	    }
	  else
	    {
	      {
/* #line 2506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2507 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2517 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2519 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2521 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2523, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (TREE_TYPE (ops3[0]) != shift_type)
						  res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
					      ops1[0] = res;
					    }
					    if (TREE_TYPE (ops1[0]) != type)
					      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				      else
					{
					  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2524, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_28 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!integer_zerop (captures[1]))
    {
      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 res;
      res = captures[0];
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_29 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && (cmp != LTGT_EXPR || ! flag_trapping_math))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4149, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR ? false : true, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_30 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_31 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4199, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[2];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_32 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_33 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1]))))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_34 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res_op0;
  res_op0 = captures[0];
  tree res;
  res = non_lvalue_loc (loc, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_35 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (comb))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2324, __FILE__, __LINE__);
  if (! tree_invariant_p (captures[2])) return NULL_TREE;
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[0];
    ops1[1] = unshare_expr (captures[2]);
    res = fold_build2_loc (loc, cmp, type, ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res_op1;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, cmp, type, ops1[0], ops1[1]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, comb, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_36 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[1], res;
	{
	  tree ops2[2], res;
	  ops2[0] = captures[2];
	  ops2[1] =  build_int_cst (TREE_TYPE (captures[2]), 1);
	  res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	  ops1[0] = res;
	}
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_37 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1568, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      res_op1 = captures[3];
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_38 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_39 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (optimize && canonicalize_math_p () && targetm.libc_has_function (function_c99_misc))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4741, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	{
	  res = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (ops1[0]), 1, ops1[0]);
	  if (!res)
	    return NULL_TREE;
	}
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  if (! tree_invariant_p (captures[1])) return NULL_TREE;
  tree res_op0;
  {
    tree ops1[2], res;
    {
      tree ops2[2], res;
      ops2[0] = unshare_expr (captures[1]);
      ops2[1] = captures[4];
      res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
      ops1[0] = res;
    }
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_41 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])))
    {
      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 res;
      res =  constant_boolean_node (cmp == GT_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_42 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (popcount))
{
/* #line 5215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (wi::bit_and (tree_nonzero_bits (captures[1]), tree_nonzero_bits (captures[3])) == 0)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5216, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[3];
	res = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_43 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1988 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (!TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1990, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_44 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1621, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[2];
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[3]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_45 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (integer_zerop (captures[2]))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3209, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[2];
      tree res_op1;
      res_op1 = captures[3];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  else
    {
/* #line 3210 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) && single_use (captures[0]))
	{
/* #line 3214 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (tree_int_cst_sgn (captures[2]) < 0)
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3215, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 = captures[3];
	      tree res;
	      res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	  else
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3216, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 = captures[3];
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_46 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  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__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[0];
    ops1[1] = captures[1];
    res = fold_build2_loc (loc, cmp, boolean_type_node, ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res_op1;
  res_op1 = captures[2];
  tree res_op2;
  res_op2 =  build_zero_cst (type);
  tree res;
  res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_48 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (rotate))
{
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2557 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree rotate_type = TREE_TYPE (captures[2]);
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2559, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (TREE_TYPE (ops2[0]) != rotate_type)
		res = fold_build1_loc (loc, NOP_EXPR, rotate_type, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, rotate, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_49 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2357, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = non_lvalue_loc (loc, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_50 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2))
{
/* #line 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3688, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (false, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_51 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] =  build_zero_cst (type);
	res = fold_build2_loc (loc, LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_minus_one_cst (type);
      tree res_op2;
      res_op2 =  build_one_cst (type);
      tree res;
      res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_53 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4185, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res_op1;
	  res_op1 =  wide_int_to_tree (TREE_TYPE (captures[1]), wi::max_value (prec, UNSIGNED) - wi::to_wide (captures[2]));
	  tree res;
	  res = fold_build2_loc (loc, out, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_54 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      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__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[4];
	      tree res;
	      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_55 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 2842 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2843, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 373 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
    {
      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 res;
      res =  build_minus_one_cst (type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_57 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[1])) && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
    {
      {
/* #line 3561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3576 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (fmt.can_represent_integral_type_p (itype) && ! exception_p)
	    {
	      {
/* #line 3577 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3600 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (real_compare (LT_EXPR, cst, &imin))
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3601, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (cmp == GT_EXPR || cmp == GE_EXPR || cmp == NE_EXPR, type);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      return res;
		    }
		  else
		    {
/* #line 3603 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (real_compare (GT_EXPR, cst, &imax))
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3604, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (cmp == LT_EXPR || cmp == LE_EXPR || cmp == NE_EXPR, type);
			  if (TREE_SIDE_EFFECTS (captures[0]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			  return res;
			}
		      else
			{
/* #line 3607 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cst_int_p)
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3608, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
 gcc_assert (!overflow_p);
			      res_op1 =  wide_int_to_tree (itype, icst_val);
			      tree res;
			      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
			      return res;
			    }
			  else
			    {
/* #line 3614 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == EQ_EXPR || cmp == NE_EXPR)
				{
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res;
				  res =  constant_boolean_node (cmp == NE_EXPR, type);
				  if (TREE_SIDE_EFFECTS (captures[0]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
				  return res;
				}
			      else
				{
				  {
/* #line 3617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 gcc_checking_assert (!overflow_p);
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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 res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  wide_int_to_tree (itype, icst_val);
				      tree res;
				      res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
				      return res;
				  }
				}
			    }
			}
		    }
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_58 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[3];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_59 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1554, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      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 res;
      res =  constant_boolean_node (cmp == LT_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_61 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  ops1[0] = res;
	}
	ops1[1] = captures[0];
	res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_62 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[1], res;
	{
	  tree ops2[2], res;
	  ops2[0] = captures[2];
	  ops2[1] =  build_int_cst (TREE_TYPE (captures[2]), 1);
	  res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	  ops1[0] = res;
	}
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_63 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      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__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[4];
	      tree res;
	      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_64 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3667, __FILE__, __LINE__);
  tree res;
  res = captures[1];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_65 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res;
  res =  build_zero_cst (type);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_66 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ocmp))
{
/* #line 1648 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1652, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_67 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_68 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4209, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
      tree res;
      res = fold_build2_loc (loc, out, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_69 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (FMIN_ALL))
{
/* #line 2266 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_finite_math_only)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2269, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1538, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_71 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2421, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
  tree res;
  res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_72 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 2397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 unsigned int prec = element_precision (type);
/* #line 2398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 unsigned int low = (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[2]));
/* #line 2406 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (low >= prec)
		{
/* #line 2407 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (op == LROTATE_EXPR || op == RROTATE_EXPR)
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2408, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 =  build_int_cst (TREE_TYPE (captures[1]), low % prec);
		      tree res;
		      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
		      return res;
		    }
		  else
		    {
/* #line 2409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR)
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  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__);
			  tree res;
			  res =  build_zero_cst (type);
			  if (TREE_SIDE_EFFECTS (captures[0]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			  return res;
			}
		      else
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2411, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 =  build_int_cst (TREE_TYPE (captures[1]), prec - 1);
			  tree res;
			  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
			  return res;
			}
		    }
		}
	      else
		{
		  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  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 res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  res_op1 =  build_int_cst (TREE_TYPE (captures[1]), low);
		  tree res;
		  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
		  return res;
		}
	  }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_73 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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 res;
  res = captures[2];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 2190 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type)))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2193, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_75 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 2429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 int cand = wi::ctz (wi::to_wide (captures[2])) - wi::ctz (wi::to_wide (captures[0]));
/* #line 2430 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (cand < 0 || (!integer_zerop (captures[2]) && wi::lshift (wi::to_wide (captures[0]), cand) != wi::to_wide (captures[2])))
	{
	  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2433, __FILE__, __LINE__);
	  tree res;
	  res =  constant_boolean_node (cmp == NE_EXPR, type);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
      else
	{
/* #line 2434 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (!integer_zerop (captures[2]) && wi::lshift (wi::to_wide (captures[0]), cand) == wi::to_wide (captures[2]))
	    {
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2436, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 =  build_int_cst (TREE_TYPE (captures[1]), cand);
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_76 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (utype)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
	  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__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[1];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[1] = res;
	      }
	      res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      if (TREE_TYPE (ops2[0]) != utype)
		res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_77 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2505, __FILE__, __LINE__);
	      tree res;
	      res =  build_int_cst (type, 0);
	      return res;
	    }
	  else
	    {
	      {
/* #line 2506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2507 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2517 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2519 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2521 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2523, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (TREE_TYPE (ops3[0]) != shift_type)
						  res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
					      ops1[0] = res;
					    }
					    if (TREE_TYPE (ops1[0]) != type)
					      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				      else
					{
					  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2524, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_78 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (acmp))
{
  {
/* #line 3146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst = uniform_integer_cst_p (captures[1]);
/* #line 3147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tree_int_cst_sgn (cst) == 1)
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3148, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 =  build_uniform_cst (TREE_TYPE (captures[1]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
	  tree res;
	  res = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_79 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 2085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2089 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2090, __FILE__, __LINE__);
		  tree res_op0;
		  {
		    tree ops1[2], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[1];
		      if (TREE_TYPE (ops2[0]) != utype)
			res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		      else
		        res = ops2[0];
		      ops1[0] = res;
		    }
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      if (TREE_TYPE (ops2[0]) != utype)
			res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		      else
		        res = ops2[0];
		      ops1[1] = res;
		    }
		    res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    res_op0 = res;
		  }
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  if (TREE_SIDE_EFFECTS (captures[3]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
		  return res;
	      }
	    }
	  else
	    {
/* #line 2091 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))))
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2105, __FILE__, __LINE__);
		  tree res_op0;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[1];
		    if (TREE_TYPE (ops1[0]) != type)
		      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		    else
		      res = ops1[0];
		    res_op0 = res;
		  }
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[2];
		    if (TREE_TYPE (ops1[0]) != type)
		      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		    else
		      res = ops1[0];
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
		  if (TREE_SIDE_EFFECTS (captures[3]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
		  return res;
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_80 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (SQRT_ALL))
{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
/* #line 4251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!HONOR_SNANS (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4252, __FILE__, __LINE__);
	  tree res;
	  res = captures[1];
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_81 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3766 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_CODE (captures[2]) == INTEGER_CST)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      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 res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 =  force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2]));
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      if (TREE_SIDE_EFFECTS (captures[3]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
	      return res;
	    }
	  else
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3769, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
		  res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
		else
		  res = ops1[0];
		res_op1 = res;
	      }
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
	}
      else
	{
/* #line 3771 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])))
	    {
/* #line 3773 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))))
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3785, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[3];
		    if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
		      res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
		    else
		      res = ops1[0];
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
		  return res;
		}
	      else
		{
/* #line 3786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3796 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (above || below)
			    {
/* #line 3797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == EQ_EXPR || cmp == NE_EXPR)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3798, __FILE__, __LINE__);
				  tree res;
				  res =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  if (TREE_SIDE_EFFECTS (captures[3]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
				  return res;
				}
			      else
				{
/* #line 3799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (cmp == LT_EXPR || cmp == LE_EXPR)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3800, __FILE__, __LINE__);
				      tree res;
				      res =  constant_boolean_node (above ? true : false, type);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      if (TREE_SIDE_EFFECTS (captures[3]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
				      return res;
				    }
				  else
				    {
/* #line 3801 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (cmp == GT_EXPR || cmp == GE_EXPR)
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3802, __FILE__, __LINE__);
					  tree res;
					  res =  constant_boolean_node (above ? false : true, type);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  if (TREE_SIDE_EFFECTS (captures[3]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
					  return res;
					}
				    }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_83 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (fns))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4518, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = maybe_build_call_expr_loc (loc, fns, type, 1, res_op0);
  if (!res)
    return NULL_TREE;
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_84 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (HYPOT))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4528, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_85 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_86 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (mod))
{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      {
/* #line 515 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
	  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__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[0];
	      if (TREE_TYPE (ops2[0]) != utype)
		res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      if (TREE_TYPE (ops2[0]) != utype)
		res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, mod, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[2];
	    if (TREE_TYPE (ops1[0]) != utype)
	      res = fold_build1_loc (loc, NOP_EXPR, utype, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_87 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (tans), const combined_fn ARG_UNUSED (atans))
{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      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__);
      tree res;
      res = captures[0];
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_88 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (COS))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4600 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4602, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 =  build_one_cst (type);
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[1];
	    {
	      res = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (ops1[0]), 1, ops1[0]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_89 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (VECTOR_TYPE_P (type) || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1))
    {
      {
/* #line 3172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0]));
/* #line 3174 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (ic == icmp)
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3175, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res;
	      res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
	      return res;
	    }
	  else
	    {
/* #line 3176 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (ic == ncmp)
		{
		  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__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  res_op1 = captures[1];
		  tree res;
		  res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
		  return res;
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_90 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 757 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
	    res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_91 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 2001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2011, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_92 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  {
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = uniform_vector_p (captures[1]);
/* #line 2367 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tem)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2368, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 =  tem;
	  tree res;
	  res = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_93 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 547 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] = captures[1];
	res = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_94 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4225 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    {
      {
/* #line 4226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
	  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4227, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      ops2[0] = captures[2];
	      ops2[1] = captures[1];
	      {
	        res = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, ops2[0], ops2[1]);
	        if (!res)
	          return NULL_TREE;
	      }
	      ops1[0] = res;
	    }
	    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  build_zero_cst (t);
	  tree res;
	  res = fold_build2_loc (loc, out, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_95 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1893, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res;
	  res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_96 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type) && (!FLOAT_TYPE_P (type) || flag_associative_math))
    {
/* #line 2153 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!ALL_FRACT_MODE_P (TYPE_MODE (type)))
	{
/* #line 2156 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2162, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		ops1[0] =  build_one_cst (type);
		ops1[1] = captures[2];
		res = fold_build2_loc (loc, plusminus, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[0];
	      tree res;
	      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_97 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && tree_expr_nonzero_p (captures[1]))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_98 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (optimize && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4759, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_99 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[1];
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_100 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1639, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[2];
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_101 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4549, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 3884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
	  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3889, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[1];
	    if (TREE_TYPE (ops1[0]) != stype)
	      res = fold_build1_loc (loc, NOP_EXPR, stype, ops1[0]);
	    else
	      res = ops1[0];
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  build_zero_cst (stype);
	  tree res;
	  res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[2]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_103 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      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__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	ops1[1] = captures[4];
	res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op1 = res;
      }
      tree res;
      res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_104 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4902 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4903, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[2];
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[4];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
	  {
/* #line 4904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4905, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[2];
		  if (TREE_TYPE (ops2[0]) != utype)
		    res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[4];
		  if (TREE_TYPE (ops2[0]) != utype)
		    res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	  }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_105 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4217, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
      tree res;
      res = fold_build2_loc (loc, out, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_106 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
/* #line 5159 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (single_use (captures[0]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5160, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res_op2;
	  res_op2 = captures[3];
	  tree res;
	  res = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
	  if (!res)
	    return NULL_TREE;
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_107 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[6]);
/* #line 5301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (inverse_conditions_p (captures[0], captures[2]) && element_precision (type) == element_precision (op_type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5303, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    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];
	      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      ops1[4] = res;
	    }
	    {
	      res = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (ops1[1]), 5, ops1[0], ops1[1], ops1[2], ops1[3], ops1[4]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  if (TREE_SIDE_EFFECTS (captures[6]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_108 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
	{
	  {
/* #line 4936 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree ntype = TREE_TYPE (captures[2]);
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4937, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[2], res;
		  ops2[0] = captures[2];
		  ops2[1] = captures[4];
		  res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[5];
		  if (TREE_TYPE (ops2[0]) != ntype)
		    res = fold_build1_loc (loc, NOP_EXPR, ntype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	  }
	}
      else
	{
	  {
/* #line 4938 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4939, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[2], res;
		  {
		    tree ops3[1], res;
		    ops3[0] = captures[2];
		    if (TREE_TYPE (ops3[0]) != utype)
		      res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		    else
		      res = ops3[0];
		    ops2[0] = res;
		  }
		  {
		    tree ops3[1], res;
		    ops3[0] = captures[4];
		    if (TREE_TYPE (ops3[0]) != utype)
		      res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		    else
		      res = ops3[0];
		    ops2[1] = res;
		  }
		  res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[5];
		  if (TREE_TYPE (ops2[0]) != utype)
		    res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	  }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_109 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 3119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3124, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[1], res;
	{
	  tree ops2[3], res;
	  ops2[0] = captures[2];
	  {
	    tree ops3[1], res;
	    ops3[0] = captures[3];
	    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops3[0]), ops3[0]);
	    ops2[1] = res;
	  }
	  ops2[2] = captures[4];
	  res = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (ops2[1]), ops2[0], ops2[1], ops2[2]);
	  ops1[0] = res;
	}
	res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_110 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2960 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (code == MAX_EXPR)
	{
	  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2961, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[0];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
		res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
      else
	{
/* #line 2962 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (code == MIN_EXPR)
	    {
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      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__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		ops1[0] = captures[0];
		{
		  tree ops2[1], res;
		  ops2[0] = captures[2];
		  if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
		    res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	  else
	    {
/* #line 2964 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (code == EQ_EXPR)
		{
		  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  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__);
		  if (! tree_invariant_p (captures[1])) return NULL_TREE;
		  tree res_op0;
		  {
		    tree ops1[3], res;
		    {
		      tree ops2[2], res;
		      ops2[0] = captures[0];
		      {
			tree ops3[1], res;
			ops3[0] = unshare_expr (captures[1]);
			if (TREE_TYPE (ops3[0]) != TREE_TYPE (ops2[0]))
			  res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops2[0]), ops3[0]);
			else
			  res = ops3[0];
			ops2[1] = res;
		      }
		      res = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, ops2[0], ops2[1]);
		      ops1[0] = res;
		    }
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[1];
		      if (TREE_TYPE (ops2[0]) != from_type)
			res = fold_build1_loc (loc, NOP_EXPR, from_type, ops2[0]);
		      else
		        res = ops2[0];
		      ops1[1] = res;
		    }
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      if (TREE_TYPE (ops2[0]) != from_type)
			res = fold_build1_loc (loc, NOP_EXPR, from_type, ops2[0]);
		      else
		        res = ops2[0];
		      ops1[2] = res;
		    }
		    res = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2]);
		    res_op0 = res;
		  }
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  return res;
		}
	    }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_111 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
  {
/* #line 886 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (utype)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	  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__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[4];
	      if (TREE_TYPE (ops2[0]) != utype)
		res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_112 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_single_nonzero_warnv_p (captures[0], NULL))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3850, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == NE_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_113 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (TAN))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4583, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res;
      res = maybe_build_call_expr_loc (loc, TAN, type, 1, res_op0);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_114 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp), const enum tree_code ARG_UNUSED (ncmp))
{
  {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0]));
/* #line 3182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (ic == icmp)
	{
	  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3183, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res;
	  res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
	  return res;
	}
      else
	{
/* #line 3184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (ic == ncmp)
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      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__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res;
	      res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
	      return res;
	    }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_115 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (single_use (captures[0]))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3197, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_116 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1884, __FILE__, __LINE__);
	  tree res;
	  res = captures[1];
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_117 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)))
    {
      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 res;
      res =  build_zero_cst (type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_118 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
)
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5164, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_119 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_UNSIGNED (type))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_120 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (sinhs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts))
{
/* #line 4490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!flag_errno_math)
    {
      {
/* #line 4497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree t_one = build_one_cst (type);
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4498, __FILE__, __LINE__);
	  if (! tree_invariant_p (captures[1])) return NULL_TREE;
	  tree res_op0;
	  res_op0 = unshare_expr (captures[1]);
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = unshare_expr (captures[1]);
		res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		ops2[0] = res;
	      }
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = captures[1];
		res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		ops2[1] = res;
	      }
	      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      ops1[0] = res;
	    }
	    {
	      res = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (ops1[0]), 1, ops1[0]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_121 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (single_use (captures[0]) && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3262, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[2];
	res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_122 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (sq), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && ! flag_errno_math)
    {
/* #line 3522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (! HONOR_NANS (captures[0]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3523, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res;
	  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
	    {
	      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1983, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_124 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_125 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (floors), const combined_fn ARG_UNUSED (truncs))
{
/* #line 4691 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4697, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = maybe_build_call_expr_loc (loc, truncs, type, 1, res_op0);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_126 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop))
{
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[0];
	  if (TREE_TYPE (ops2[0]) != type)
	    res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
	  else
	    res = ops2[0];
	  ops1[0] = res;
	}
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  if (TREE_TYPE (ops2[0]) != type)
	    res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, rop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_127 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (logic), const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (ext))
{
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TREE_CODE (captures[1]) != INTEGER_CST)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4951, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	ops1[1] = captures[4];
	res = fold_build2_loc (loc, ext, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_128 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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 res;
  res =  build_zero_cst (type);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (outer_op))
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  {
/* #line 1962 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst = const_binop (outer_op, type, captures[0], captures[2]);
/* #line 1963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cst && !TREE_OVERFLOW (cst))
		{
		  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1964, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 =  cst;
		  tree res_op1;
		  res_op1 = captures[1];
		  tree res;
		  res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
		  return res;
		}
	  }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_130 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!integer_zerop (captures[1]))
    {
/* #line 3628 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (wi::to_wide (captures[2]) == 0)
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3629, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res;
	  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
      else
	{
/* #line 3630 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_CODE (captures[1]) == INTEGER_CST)
	    {
	      {
/* #line 3631 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3637 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (ovf)
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3638, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (cmp == NE_EXPR, type);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      return res;
		    }
		  else
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      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 res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
		      tree res;
		      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
		      return res;
		    }
	      }
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_131 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1]))))
    {
      {
/* #line 3644 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3650 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (ovf)
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3651, __FILE__, __LINE__);
	      tree res;
	      res =  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);
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      return res;
	    }
	  else
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3654, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_132 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (coss), const combined_fn ARG_UNUSED (copysigns))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = maybe_build_call_expr_loc (loc, coss, type, 1, res_op0);
  if (!res)
    return NULL_TREE;
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4628, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  ops1[1] = res;
	}
	{
	  res = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (ops1[0]), 2, ops1[0], ops1[1]);
	  if (!res)
	    return NULL_TREE;
	}
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_134 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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 res;
  res = captures[2];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_135 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 3884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
	  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3889, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[1];
	    if (TREE_TYPE (ops1[0]) != stype)
	      res = fold_build1_loc (loc, NOP_EXPR, stype, ops1[0]);
	    else
	      res = ops1[0];
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  build_zero_cst (stype);
	  tree res;
	  res = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[2]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_136 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_137 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 2799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TREE_CODE (captures[3]) != INTEGER_CST && single_use (captures[0]) && !integer_zerop (captures[2]) && !integer_minus_onep (captures[2]))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2802, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[3];
	res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_138 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3726, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_139 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
  if (!res)
    return NULL_TREE;
  if (TREE_SIDE_EFFECTS (captures[2]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_140 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const combined_fn ARG_UNUSED (bswap))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2862, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[1];
    {
      res = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (ops1[0]), 1, ops1[0]);
      if (!res)
        return NULL_TREE;
    }
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_141 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2178, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_142 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (copysigns))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[2];
  tree res;
  res = maybe_build_call_expr_loc (loc, copysigns, type, 2, res_op0, res_op1);
  if (!res)
    return NULL_TREE;
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (copysigns))
{
  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__);
  if (! tree_invariant_p (captures[1])) return NULL_TREE;
  tree res_op0;
  res_op0 = unshare_expr (captures[1]);
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
  if (TREE_SIDE_EFFECTS (captures[2]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_144 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  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 res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_145 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (inner_op), const enum tree_code ARG_UNUSED (outer_op))
{
  {
/* #line 1703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1726 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!fail && (C0 & zero_mask_not) == 0)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1727, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res_op1;
	  res_op1 =  wide_int_to_tree (type, cst_emit);
	  tree res;
	  res = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
	  return res;
	}
      else
	{
/* #line 1728 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0)
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 =  wide_int_to_tree (type, cst_emit);
	      tree res;
	      res = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
	      return res;
	    }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_146 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1112, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_147 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1913, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res;
	  res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_148 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (minmax))
{
/* #line 2258 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (real_isnan (TREE_REAL_CST_PTR (captures[1])) && (!HONOR_SNANS (captures[1]) || !TREE_REAL_CST (captures[1]).signalling))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2260, __FILE__, __LINE__);
      tree res;
      res = captures[0];
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_149 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 2539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree shift_type = TREE_TYPE (captures[2]);
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2545, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (TREE_TYPE (ops2[0]) != shift_type)
		res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      {
	tree ops1[1], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  ops1[0] = res;
	}
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_152 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4855, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_153 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (wi::bit_and_not (wi::to_wide (captures[1]), get_nonzero_bits (captures[0])) != 0)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1686, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == NE_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_154 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 2038 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
	    {
	      {
/* #line 2041 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2042, __FILE__, __LINE__);
		  tree res_op0;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[1];
		      if (TREE_TYPE (ops2[0]) != utype)
			res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		      else
		        res = ops2[0];
		      ops1[0] = res;
		    }
		    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		    res_op0 = res;
		  }
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  if (TREE_SIDE_EFFECTS (captures[2]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		  return res;
	      }
	    }
	  else
	    {
/* #line 2043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2053, __FILE__, __LINE__);
		  tree res_op0;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[1];
		    if (TREE_TYPE (ops1[0]) != type)
		      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		    else
		      res = ops1[0];
		    res_op0 = res;
		  }
		  tree res;
		  res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
		  if (TREE_SIDE_EFFECTS (captures[2]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		  return res;
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_155 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4612, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[4];
	res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_156 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type))
    {
      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 res;
      res = captures[0];
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_157 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2505, __FILE__, __LINE__);
	      tree res;
	      res =  build_int_cst (type, 0);
	      return res;
	    }
	  else
	    {
	      {
/* #line 2506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2507 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2517 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2519 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2521 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2523, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (TREE_TYPE (ops3[0]) != shift_type)
						  res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
					      ops1[0] = res;
					    }
					    if (TREE_TYPE (ops1[0]) != type)
					      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				      else
					{
					  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2524, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_158 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (coshs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts))
{
/* #line 4490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!flag_errno_math)
    {
      {
/* #line 4506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree t_one = build_one_cst (type);
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4507, __FILE__, __LINE__);
	  if (! tree_invariant_p (captures[1])) return NULL_TREE;
	  tree res_op0;
	  res_op0 =  t_one;
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = unshare_expr (captures[1]);
		res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		ops2[0] = res;
	      }
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = captures[1];
		res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		ops2[1] = res;
	      }
	      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      ops1[0] = res;
	    }
	    {
	      res = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (ops1[0]), 1, ops1[0]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
  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 res_op0;
  res_op0 = captures[0];
  tree res;
  res = non_lvalue_loc (loc, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_160 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4259, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] = captures[2];
	res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_161 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1835 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type))
	{
	  {
/* #line 1837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]);
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1844, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[0];
		  if (TREE_TYPE (ops2[0]) != t1)
		    res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[1];
		  if (TREE_TYPE (ops2[0]) != t1)
		    res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	  }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_162 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 1393 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1394, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      {
/* #line 3362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR, TREE_TYPE (captures[1]), captures[2], captures[1]);
/* #line 3367 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (tem && !TREE_OVERFLOW (tem))
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3368, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 =  tem;
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_associative_math)
    {
      {
/* #line 3377 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
/* #line 3378 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (tem && !TREE_OVERFLOW (tem))
	    {
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3379, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 =  tem;
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_165 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = unshare_expr (captures[2]);
    res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res_op1;
  res_op1 = captures[2];
  tree res;
  res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_166 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1890, __FILE__, __LINE__);
	  tree res;
	  res = captures[0];
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_167 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1627, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[3];
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[3]));
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[2];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3670, __FILE__, __LINE__);
  tree res;
  res = captures[1];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_170 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = unshare_expr (captures[2]);
  tree res_op1;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_171 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res;
  res = captures[2];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2735, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
  if (TREE_SIDE_EFFECTS (captures[2]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_173 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
/* #line 2993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3000 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3064 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (code == MAX_EXPR)
		{
		  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3065, __FILE__, __LINE__);
		  tree res_op0;
		  {
		    tree ops1[2], res;
		    ops1[0] = captures[0];
		    ops1[1] =  wide_int_to_tree (from_type, real_c1);
		    res = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    res_op0 = res;
		  }
		  tree res_op1;
		  res_op1 =  wide_int_to_tree (from_type, c2);
		  tree res;
		  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
		  return res;
		}
	      else
		{
/* #line 3067 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (code == MIN_EXPR)
		    {
		      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3068, __FILE__, __LINE__);
		      tree res_op0;
		      {
			tree ops1[2], res;
			ops1[0] = captures[0];
			ops1[1] =  wide_int_to_tree (from_type, real_c1);
			res = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			res_op0 = res;
		      }
		      tree res_op1;
		      res_op1 =  wide_int_to_tree (from_type, c2);
		      tree res;
		      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
		      return res;
		    }
		}
	  }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_174 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (rep), const combined_fn ARG_UNUSED (popcount))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5222, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
  tree res;
  res = fold_build2_loc (loc, rep, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3231 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (cmp != NE_EXPR || ! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0]))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3234, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (false, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_176 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_177 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4622 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!TREE_OVERFLOW (captures[2]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4623, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res_op1;
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] =  build_one_cst (type);
	    res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op1 = res;
	  }
	  tree res;
	  res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
	  if (!res)
	    return NULL_TREE;
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_179 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4543, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_180 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_OVERFLOW_UNDEFINED (type))
    {
      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 res;
      res =  build_minus_one_cst (type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_181 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_182 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (pows), const combined_fn ARG_UNUSED (copysigns))
{
  {
/* #line 645 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0)
	{
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res;
	  res = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
	  if (!res)
	    return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_184 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res;
  res = captures[2];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_185 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_186 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_187 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[5]);
/* #line 5287 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (inverse_conditions_p (captures[0], captures[2]) && element_precision (type) == element_precision (op_type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5289, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[4], res;
	    ops1[0] = captures[2];
	    ops1[1] = captures[3];
	    ops1[2] = captures[4];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      ops1[3] = res;
	    }
	    {
	      res = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (ops1[1]), 4, ops1[0], ops1[1], ops1[2], ops1[3]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  if (TREE_SIDE_EFFECTS (captures[5]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_189 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3933 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (base0 && base1)
	{
	  {
/* #line 3934 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 int equal = 2;
 if (1 && ((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 4002 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4012, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (known_eq (off0, off1), type);
		      return res;
		    }
		  else
		    {
/* #line 4013 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4014, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (known_ne (off0, off1), type);
			  return res;
			}
		      else
			{
/* #line 4015 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1)))
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4016, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (known_lt (off0, off1), type);
			      return res;
			    }
			  else
			    {
/* #line 4017 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1)))
				{
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4018, __FILE__, __LINE__);
				  tree res;
				  res =  constant_boolean_node (known_le (off0, off1), type);
				  return res;
				}
			      else
				{
/* #line 4019 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1)))
				    {
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4020, __FILE__, __LINE__);
				      tree res;
				      res =  constant_boolean_node (known_ge (off0, off1), type);
				      return res;
				    }
				  else
				    {
/* #line 4021 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1)))
					{
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4022, __FILE__, __LINE__);
					  tree res;
					  res =  constant_boolean_node (known_gt (off0, off1), type);
					  return res;
					}
				    }
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 4023 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (equal == 0)
		    {
/* #line 4025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == EQ_EXPR)
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4026, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (false, type);
			  return res;
			}
		      else
			{
/* #line 4027 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == NE_EXPR)
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4028, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (true, type);
			      return res;
			    }
			}
		    }
		}
	  }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_190 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_191 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *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 4458 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4465 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (SCALAR_FLOAT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4466, __FILE__, __LINE__);
	  if (! tree_invariant_p (captures[1])) return NULL_TREE;
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = unshare_expr (captures[1]);
	      res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      ops1[0] = res;
	    }
	    ops1[1] =  t_cst;
	    res = fold_build2_loc (loc, LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  {
	    tree ops1[2], res;
	    ops1[0] = unshare_expr (captures[1]);
	    {
	      tree ops2[1], res;
	      {
		tree ops3[2], res;
		{
		  tree ops4[2], res;
		  ops4[0] = unshare_expr (captures[1]);
		  ops4[1] = unshare_expr (captures[1]);
		  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops4[0]), ops4[0], ops4[1]);
		  ops3[0] = res;
		}
		ops3[1] =  t_one;
		res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		ops2[0] = res;
	      }
	      {
	        res = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (ops2[0]), 1, ops2[0]);
	        if (!res)
	          return NULL_TREE;
	      }
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op1 = res;
	  }
	  tree res_op2;
	  {
	    tree ops1[2], res;
	    ops1[0] =  t_one;
	    ops1[1] = captures[1];
	    {
	      res = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (ops1[0]), 2, ops1[0], ops1[1]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op2 = res;
	  }
	  tree res;
	  res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[1];
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_193 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (acmp))
{
  {
/* #line 3136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst = uniform_integer_cst_p (captures[1]);
/* #line 3137 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tree_int_cst_sgn (cst) == -1)
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3138, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 =  build_uniform_cst (TREE_TYPE (captures[1]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
	  tree res;
	  res = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_194 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
)
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5192, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 874 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (utype)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  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__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[1];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[1] = res;
	      }
	      res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (TREE_TYPE (ops2[0]) != utype)
		res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_196 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (neg_op))
{
/* #line 428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
/* #line 435 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!HONOR_SIGNED_ZEROS (captures[1]) && !HONOR_INFINITIES (captures[1]))
	{
/* #line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[0])))
	    {
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 = captures[2];
	      tree res;
	      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      return res;
	    }
	  else
	    {
/* #line 440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0))
		{
		  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__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res_op1;
		  res_op1 = captures[2];
		  tree res;
		  res = fold_build2_loc (loc, neg_op, type, res_op0, res_op1);
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  return res;
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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__);
  tree res_op0;
  res_op0 = captures[1];
  tree res_op1;
  res_op1 = captures[2];
  tree res;
  res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_198 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift))
{
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      {
/* #line 2533 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2534, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      if (TREE_TYPE (ops2[0]) != type)
		res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, shift, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  mask;
	  tree res;
	  res = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_199 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4538, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_200 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2))
{
/* #line 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3680, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (true, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_201 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4533, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_202 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3933 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (base0 && base1)
	{
	  {
/* #line 3934 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 int equal = 2;
 if (1 && ((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 4002 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
		    {
		      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4012, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (known_eq (off0, off1), type);
		      return res;
		    }
		  else
		    {
/* #line 4013 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
			{
			  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4014, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (known_ne (off0, off1), type);
			  return res;
			}
		      else
			{
/* #line 4015 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1)))
			    {
			      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4016, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (known_lt (off0, off1), type);
			      return res;
			    }
			  else
			    {
/* #line 4017 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1)))
				{
				  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4018, __FILE__, __LINE__);
				  tree res;
				  res =  constant_boolean_node (known_le (off0, off1), type);
				  return res;
				}
			      else
				{
/* #line 4019 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1)))
				    {
				      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4020, __FILE__, __LINE__);
				      tree res;
				      res =  constant_boolean_node (known_ge (off0, off1), type);
				      return res;
				    }
				  else
				    {
/* #line 4021 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1)))
					{
					  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4022, __FILE__, __LINE__);
					  tree res;
					  res =  constant_boolean_node (known_gt (off0, off1), type);
					  return res;
					}
				    }
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 4023 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (equal == 0)
		    {
/* #line 4025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == EQ_EXPR)
			{
			  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4026, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (false, type);
			  return res;
			}
		      else
			{
/* #line 4027 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == NE_EXPR)
			    {
			      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4028, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (true, type);
			      return res;
			    }
			}
		    }
		}
	  }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_203 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5150, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_204 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
  {
/* #line 333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (div == EXACT_DIV_EXPR || optimize_successive_divisions_p (captures[3], captures[0]))
	{
/* #line 340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (!overflow)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 =  wide_int_to_tree (type, mul);
	      tree res;
	      res = fold_build2_loc (loc, div, type, res_op0, res_op1);
	      return res;
	    }
	  else
	    {
/* #line 342 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (TYPE_UNSIGNED (type) || mul != wi::min_value (TYPE_PRECISION (type), SIGNED))
		{
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		  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 res;
		  res =  build_zero_cst (type);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	    }
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (SCALAR_FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
    {
/* #line 385 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (types_match (type, float_type_node))
	{
	  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__);
	  tree res_op0;
	  res_op0 =  build_one_cst (type);
	  tree res_op1;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[0];
	    if (TREE_TYPE (ops1[0]) != type)
	      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	    else
	      res = ops1[0];
	    res_op1 = res;
	  }
	  tree res;
	  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
	  if (!res)
	    return NULL_TREE;
	  return res;
	}
      else
	{
/* #line 387 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (types_match (type, double_type_node))
	    {
	      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__);
	      tree res_op0;
	      res_op0 =  build_one_cst (type);
	      tree res_op1;
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		res_op1 = res;
	      }
	      tree res;
	      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
	      if (!res)
	        return NULL_TREE;
	      return res;
	    }
	  else
	    {
/* #line 389 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (types_match (type, long_double_type_node))
		{
		  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__);
		  tree res_op0;
		  res_op0 =  build_one_cst (type);
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[0];
		    if (TREE_TYPE (ops1[0]) != type)
		      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		    else
		      res = ops1[0];
		    res_op1 = res;
		  }
		  tree res;
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
		  if (!res)
		    return NULL_TREE;
		  return res;
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_206 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 2197 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type)))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2200, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 1386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_208 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3740, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, op, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_209 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!CONSTANT_CLASS_P (captures[0]))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[2];
	res = fold_build2_loc (loc, bitop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
      return res;
    }
  else
    {
      {
/* #line 1317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst1 = const_binop (bitop, type, captures[0], captures[2]);
/* #line 1318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (cst1)
	    {
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 =  cst1;
	      tree res;
	      res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
	      return res;
	    }
	  else
	    {
	      {
/* #line 1320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst2 = const_binop (bitop, type, captures[1], captures[2]);
/* #line 1321 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cst2)
		    {
		      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      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__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 =  cst2;
		      tree res;
		      res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
		      return res;
		    }
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_210 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (rotate))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2331, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_211 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1099, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[0];
	  res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_212 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (fns))
{
  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__);
  tree res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_213 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2858, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
)
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5178, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_215 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 1369 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] =  build_each_one_cst (TREE_TYPE (captures[0]));
	res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_216 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2505, __FILE__, __LINE__);
	      tree res;
	      res =  build_int_cst (type, 0);
	      return res;
	    }
	  else
	    {
	      {
/* #line 2506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2507 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2517 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2519 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2521 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2523, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (TREE_TYPE (ops3[0]) != shift_type)
						  res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops3[0]);
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      res = fold_build2_loc (loc, shift, shift_type, ops2[0], ops2[1]);
					      ops1[0] = res;
					    }
					    if (TREE_TYPE (ops1[0]) != type)
					      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				      else
					{
					  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2524, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  newmaskt;
					  tree res;
					  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					  return res;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_217 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift))
{
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      {
/* #line 2533 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2534, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      if (TREE_TYPE (ops2[0]) != type)
		res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, shift, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  mask;
	  tree res;
	  res = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 748 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
	    res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4217, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
      tree res;
      res = fold_build2_loc (loc, out, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_220 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  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__);
  tree res_op0;
  res_op0 =  build_all_ones_cst (TREE_TYPE (captures[0]));
  tree res;
  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_221 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 1465 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[0]));
	  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__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[0];
	    if (TREE_TYPE (ops1[0]) != stype)
	      res = fold_build1_loc (loc, NOP_EXPR, stype, ops1[0]);
	    else
	      res = ops1[0];
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  build_int_cst (stype, 0);
	  tree res;
	  res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  if (TREE_SIDE_EFFECTS (captures[2]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_222 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2182, __FILE__, __LINE__);
  tree res;
  res = captures[1];
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_223 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[4]);
/* #line 5296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (element_precision (type) == element_precision (op_type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5297, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[5], res;
	    ops1[0] = captures[0];
	    ops1[1] = captures[1];
	    ops1[2] = captures[2];
	    ops1[3] = captures[3];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      ops1[4] = res;
	    }
	    {
	      res = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (ops1[1]), 5, ops1[0], ops1[1], ops1[2], ops1[3], ops1[4]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	  if (TREE_SIDE_EFFECTS (captures[4]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_224 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4746 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (optimize && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4749, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  if (! tree_invariant_p (captures[2])) return NULL_TREE;
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[0];
    ops1[1] = unshare_expr (captures[2]);
    res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_226 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_227 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (wi::to_wide (cst) == max)
	    {
/* #line 4078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cmp == GT_EXPR)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4079, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (false, type);
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  if (TREE_SIDE_EFFECTS (captures[2]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		  return res;
		}
	      else
		{
/* #line 4080 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == GE_EXPR)
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4081, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 = captures[2];
		      tree res;
		      res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		  else
		    {
/* #line 4082 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4083, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (true, type);
			  if (TREE_SIDE_EFFECTS (captures[0]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			  if (TREE_SIDE_EFFECTS (captures[2]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			  return res;
			}
		      else
			{
/* #line 4084 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == LT_EXPR)
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4085, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 = captures[2];
			      tree res;
			      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			      return res;
			    }
			}
		    }
		}
	    }
	  else
	    {
/* #line 4086 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (wi::to_wide (cst) == min)
		{
/* #line 4088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == LT_EXPR)
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4089, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (false, type);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      if (TREE_SIDE_EFFECTS (captures[2]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		      return res;
		    }
		  else
		    {
/* #line 4090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4091, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 = captures[2];
			  tree res;
			  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
/* #line 4092 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4093, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (true, type);
			      if (TREE_SIDE_EFFECTS (captures[0]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			      if (TREE_SIDE_EFFECTS (captures[2]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			      return res;
			    }
			  else
			    {
/* #line 4094 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == GT_EXPR)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4095, __FILE__, __LINE__);
				  tree res_op0;
				  res_op0 = captures[0];
				  tree res_op1;
				  res_op1 = captures[2];
				  tree res;
				  res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
				  return res;
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 4096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (wi::to_wide (cst) == max - 1)
		    {
/* #line 4098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == GT_EXPR)
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4099, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			  tree res;
			  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			  if (TREE_SIDE_EFFECTS (captures[2]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			  return res;
			}
		      else
			{
/* #line 4103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == LE_EXPR)
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			      tree res;
			      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			      if (TREE_SIDE_EFFECTS (captures[2]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			      return res;
			    }
			}
		    }
		  else
		    {
/* #line 4108 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (wi::to_wide (cst) == min + 1)
			{
/* #line 4110 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4111, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
			      tree res;
			      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			      if (TREE_SIDE_EFFECTS (captures[2]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			      return res;
			    }
			  else
			    {
/* #line 4115 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == LT_EXPR)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4116, __FILE__, __LINE__);
				  tree res_op0;
				  res_op0 = captures[0];
				  tree res_op1;
				  res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
				  tree res;
				  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
				  if (TREE_SIDE_EFFECTS (captures[2]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
				  return res;
				}
			    }
			}
		      else
			{
/* #line 4120 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == LE_EXPR || cmp == GT_EXPR)
				{
				  {
/* #line 4132 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree st = signed_type_for (TREE_TYPE (captures[2]));
/* #line 4134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (cst == captures[2] && cmp == LE_EXPR)
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4135, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[1];
					    if (TREE_TYPE (ops1[0]) != st)
					      res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res_op1;
					  res_op1 =  build_zero_cst (st);
					  tree res;
					  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[2]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					  return res;
					}
				      else
					{
/* #line 4136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					  if (cst == captures[2] && cmp == GT_EXPR)
					    {
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4137, __FILE__, __LINE__);
					      tree res_op0;
					      {
						tree ops1[1], res;
						ops1[0] = captures[1];
						if (TREE_TYPE (ops1[0]) != st)
						  res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
						else
						  res = ops1[0];
						res_op0 = res;
					      }
					      tree res_op1;
					      res_op1 =  build_zero_cst (st);
					      tree res;
					      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
					      if (TREE_SIDE_EFFECTS (captures[2]))
						res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					      return res;
					    }
					  else
					    {
/* #line 4138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      if (cmp == LE_EXPR)
						{
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4139, __FILE__, __LINE__);
						  tree res_op0;
						  {
						    tree ops1[1], res;
						    ops1[0] = captures[1];
						    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, ops1[0]);
						    res_op0 = res;
						  }
						  tree res_op1;
						  res_op1 =  build_zero_cst (st);
						  tree res;
						  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
						  if (TREE_SIDE_EFFECTS (captures[2]))
						    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
						  return res;
						}
					      else
						{
/* #line 4140 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						  if (cmp == GT_EXPR)
						    {
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4141, __FILE__, __LINE__);
						      tree res_op0;
						      {
							tree ops1[1], res;
							ops1[0] = captures[1];
							res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, ops1[0]);
							res_op0 = res;
						      }
						      tree res_op1;
						      res_op1 =  build_zero_cst (st);
						      tree res;
						      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
						      if (TREE_SIDE_EFFECTS (captures[2]))
							res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
						      return res;
						    }
						}
					    }
					}
				  }
				}
			    }
			}
		    }
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_228 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4974 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree res = int_const_binop (rop, captures[3], captures[2]);
/* #line 4975 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_OVERFLOW (res) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4977, __FILE__, __LINE__);
	      tree res;
	      res =  constant_boolean_node (cmp == NE_EXPR, type);
	      if (TREE_SIDE_EFFECTS (captures[1]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	      return res;
	    }
	  else
	    {
/* #line 4978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (single_use (captures[0]))
		{
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4979, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res_op1;
		  res_op1 =  TREE_OVERFLOW (res) ? drop_tree_overflow (res) : res;
		  tree res;
		  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
		  return res;
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  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 res;
  res =  constant_boolean_node (true, type);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_230 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop))
{
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  if (TREE_TYPE (ops2[0]) != type)
	    res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
	  else
	    res = ops2[0];
	  ops1[0] = res;
	}
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  if (TREE_TYPE (ops2[0]) != type)
	    res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, rop, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_231 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!integer_zerop (captures[0]))
    {
      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 res;
      res =  build_zero_cst (type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_232 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
    {
      {
/* #line 4988 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree res = int_const_binop (rop, captures[3], captures[2]);
/* #line 4989 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_OVERFLOW (res))
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4990, __FILE__, __LINE__);
	      tree res;
 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);
	      res =  constant_boolean_node (less == ovf_high, type);
	      if (TREE_SIDE_EFFECTS (captures[1]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	      return res;
	    }
	  else
	    {
/* #line 5001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (single_use (captures[0]))
		{
		  {
/* #line 5002 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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);
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5009, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      res_op1 =  res;
		      tree res;
		      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
		      return res;
		  }
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4588, __FILE__, __LINE__);
      tree res_op0;
      res_op0 =  build_one_cst (type);
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	{
	  res = maybe_build_call_expr_loc (loc, TAN, TREE_TYPE (ops1[0]), 1, ops1[0]);
	  if (!res)
	    return NULL_TREE;
	}
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_234 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[1];
  tree res_op1;
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op1 = res;
  }
  tree res;
  res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_235 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_236 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
)
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5170, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_237 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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 res;
  res =  build_zero_cst (type);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_238 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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__);
  tree res_op0;
  res_op0 = captures[1];
  tree res_op1;
  res_op1 = captures[2];
  tree res;
  res = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_239 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1822 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type))
	{
	  {
/* #line 1824 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]);
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1831, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[0];
		  if (TREE_TYPE (ops2[0]) != t1)
		    res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[1];
		  if (TREE_TYPE (ops2[0]) != t1)
		    res = fold_build1_loc (loc, NOP_EXPR, t1, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	  }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_241 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_242 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  {
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = uniform_vector_p (captures[1]);
/* #line 2367 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tem)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2368, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 =  tem;
	  tree res;
	  res = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_243 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_244 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_245 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1905, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[2];
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res;
	  res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3299, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 =  build_real (TREE_TYPE (captures[1]), dconst0);
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  else
    {
/* #line 3301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && ! HONOR_SNANS (captures[1]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3303, __FILE__, __LINE__);
	  tree res;
	  res =  constant_boolean_node (cmp == NE_EXPR, type);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
      else
	{
/* #line 3305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1])) && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1]))))
	    {
	      {
/* #line 3307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (code == GT_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3319, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (false, type);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      if (TREE_SIDE_EFFECTS (captures[1]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		      return res;
		    }
		  else
		    {
/* #line 3320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (code == LE_EXPR)
			{
/* #line 3322 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (! HONOR_NANS (captures[0]))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3323, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (true, type);
			      if (TREE_SIDE_EFFECTS (captures[0]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			      if (TREE_SIDE_EFFECTS (captures[1]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			      return res;
			    }
			  else
			    {
/* #line 3326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (!flag_trapping_math)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3327, __FILE__, __LINE__);
				  if (! tree_invariant_p (captures[0])) return NULL_TREE;
				  tree res_op0;
				  res_op0 = unshare_expr (captures[0]);
				  tree res_op1;
				  res_op1 = captures[0];
				  tree res;
				  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  return res;
				}
			    }
			}
		      else
			{
/* #line 3330 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math)) || code == GE_EXPR)
			    {
			      {
/* #line 3332 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 3333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (neg)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3334, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), max);
				      tree res;
				      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
				  else
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3335, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[0];
				      tree res_op1;
				      res_op1 =  build_real (TREE_TYPE (captures[0]), max);
				      tree res;
				      res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      return res;
				    }
			      }
			    }
			  else
			    {
/* #line 3337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (code == LT_EXPR)
				{
				  {
/* #line 3338 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 3339 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (neg)
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3340, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  build_real (TREE_TYPE (captures[0]), max);
					  tree res;
					  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  return res;
					}
				      else
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3341, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 = captures[0];
					  tree res_op1;
					  res_op1 =  build_real (TREE_TYPE (captures[0]), max);
					  tree res;
					  res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  return res;
					}
				  }
				}
			      else
				{
/* #line 3344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (code == NE_EXPR)
				    {
				      {
/* #line 3345 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 3346 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					  if (! HONOR_NANS (captures[0]))
					    {
/* #line 3347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      if (neg)
						{
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3348, __FILE__, __LINE__);
						  tree res_op0;
						  res_op0 = captures[0];
						  tree res_op1;
						  res_op1 =  build_real (TREE_TYPE (captures[0]), max);
						  tree res;
						  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
						  if (TREE_SIDE_EFFECTS (captures[1]))
						    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
						  return res;
						}
					      else
						{
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3349, __FILE__, __LINE__);
						  tree res_op0;
						  res_op0 = captures[0];
						  tree res_op1;
						  res_op1 =  build_real (TREE_TYPE (captures[0]), max);
						  tree res;
						  res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
						  if (TREE_SIDE_EFFECTS (captures[1]))
						    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
						  return res;
						}
					    }
					  else
					    {
/* #line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      if (neg)
						{
						  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__);
						  tree res_op0;
						  res_op0 = captures[0];
						  tree res_op1;
						  res_op1 =  build_real (TREE_TYPE (captures[0]), max);
						  tree res;
						  res = fold_build2_loc (loc, UNGE_EXPR, type, res_op0, res_op1);
						  if (TREE_SIDE_EFFECTS (captures[1]))
						    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
						  return res;
						}
					      else
						{
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3352, __FILE__, __LINE__);
						  tree res_op0;
						  res_op0 = captures[0];
						  tree res_op1;
						  res_op1 =  build_real (TREE_TYPE (captures[0]), max);
						  tree res;
						  res = fold_build2_loc (loc, UNLE_EXPR, type, res_op0, res_op1);
						  if (TREE_SIDE_EFFECTS (captures[1]))
						    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
						  return res;
						}
					    }
				      }
				    }
				}
			    }
			}
		    }
	      }
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_247 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (logs), const combined_fn ARG_UNUSED (pows))
{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4377, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	{
	  res = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (ops1[0]), 1, ops1[0]);
	  if (!res)
	    return NULL_TREE;
	}
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_248 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *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 4477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (SCALAR_FLOAT_TYPE_P (type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4486, __FILE__, __LINE__);
	  if (! tree_invariant_p (captures[1])) return NULL_TREE;
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = unshare_expr (captures[1]);
	      res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      ops1[0] = res;
	    }
	    ops1[1] =  t_cst;
	    res = fold_build2_loc (loc, LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  {
	    tree ops1[2], res;
	    ops1[0] =  t_one;
	    {
	      tree ops2[1], res;
	      {
		tree ops3[2], res;
		{
		  tree ops4[2], res;
		  ops4[0] = unshare_expr (captures[1]);
		  ops4[1] = unshare_expr (captures[1]);
		  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops4[0]), ops4[0], ops4[1]);
		  ops3[0] = res;
		}
		ops3[1] =  t_one;
		res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		ops2[0] = res;
	      }
	      {
	        res = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (ops2[0]), 1, ops2[0]);
	        if (!res)
	          return NULL_TREE;
	      }
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op1 = res;
	  }
	  tree res_op2;
	  {
	    tree ops1[2], res;
	    ops1[0] =  t_zero;
	    ops1[1] = captures[1];
	    {
	      res = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (ops1[0]), 2, ops1[0], ops1[1]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op2 = res;
	  }
	  tree res;
	  res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_249 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
)
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5198, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_250 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_251 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    res_op0 = res;
  }
  tree res;
  res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1801 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
    {
      {
/* #line 1803 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 unsigned int align;
 unsigned HOST_WIDE_INT bitpos;
 get_pointer_alignment_1 (captures[0], &align, &bitpos);
/* #line 1809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (wi::ltu_p (wi::to_wide (captures[1]), align / BITS_PER_UNIT))
	    {
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1810, __FILE__, __LINE__);
	      tree res;
	      res =  wide_int_to_tree (type, (wi::to_wide (captures[1]) & (bitpos / BITS_PER_UNIT)));
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_253 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)
    {
      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_int_cst (integer_type_node, wi::exact_log2 (wi::to_wide (captures[2])));
      tree res;
      res = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_254 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_255 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (popcount))
{
/* #line 5210 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nonzero_bits (captures[0]) == 1)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5211, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (wi::to_wide (cst) == max)
	    {
/* #line 4078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cmp == GT_EXPR)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4079, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (false, type);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  if (TREE_SIDE_EFFECTS (captures[2]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		  return res;
		}
	      else
		{
/* #line 4080 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == GE_EXPR)
		    {
		      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4081, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 = captures[2];
		      tree res;
		      res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		  else
		    {
/* #line 4082 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4083, __FILE__, __LINE__);
			  tree res;
			  res =  constant_boolean_node (true, type);
			  if (TREE_SIDE_EFFECTS (captures[1]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			  if (TREE_SIDE_EFFECTS (captures[2]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			  return res;
			}
		      else
			{
/* #line 4084 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == LT_EXPR)
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4085, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 = captures[2];
			      tree res;
			      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			      return res;
			    }
			}
		    }
		}
	    }
	  else
	    {
/* #line 4086 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (wi::to_wide (cst) == min)
		{
/* #line 4088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (cmp == LT_EXPR)
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4089, __FILE__, __LINE__);
		      tree res;
		      res =  constant_boolean_node (false, type);
		      if (TREE_SIDE_EFFECTS (captures[1]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		      if (TREE_SIDE_EFFECTS (captures[2]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		      return res;
		    }
		  else
		    {
/* #line 4090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4091, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 = captures[2];
			  tree res;
			  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
/* #line 4092 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4093, __FILE__, __LINE__);
			      tree res;
			      res =  constant_boolean_node (true, type);
			      if (TREE_SIDE_EFFECTS (captures[1]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			      if (TREE_SIDE_EFFECTS (captures[2]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			      return res;
			    }
			  else
			    {
/* #line 4094 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == GT_EXPR)
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4095, __FILE__, __LINE__);
				  tree res_op0;
				  res_op0 = captures[0];
				  tree res_op1;
				  res_op1 = captures[2];
				  tree res;
				  res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
				  return res;
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 4096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (wi::to_wide (cst) == max - 1)
		    {
/* #line 4098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (cmp == GT_EXPR)
			{
			  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4099, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			  tree res;
			  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			  if (TREE_SIDE_EFFECTS (captures[2]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			  return res;
			}
		      else
			{
/* #line 4103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == LE_EXPR)
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			      tree res;
			      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			      if (TREE_SIDE_EFFECTS (captures[2]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			      return res;
			    }
			}
		    }
		  else
		    {
/* #line 4108 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (wi::to_wide (cst) == min + 1)
			{
/* #line 4110 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4111, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
			      tree res;
			      res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			      if (TREE_SIDE_EFFECTS (captures[2]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			      return res;
			    }
			  else
			    {
/* #line 4115 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == LT_EXPR)
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4116, __FILE__, __LINE__);
				  tree res_op0;
				  res_op0 = captures[0];
				  tree res_op1;
				  res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
				  tree res;
				  res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
				  if (TREE_SIDE_EFFECTS (captures[2]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
				  return res;
				}
			    }
			}
		      else
			{
/* #line 4120 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == LE_EXPR || cmp == GT_EXPR)
				{
				  {
/* #line 4132 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree st = signed_type_for (TREE_TYPE (captures[2]));
/* #line 4134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (cst == captures[2] && cmp == LE_EXPR)
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4135, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[1];
					    if (TREE_TYPE (ops1[0]) != st)
					      res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res_op1;
					  res_op1 =  build_zero_cst (st);
					  tree res;
					  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
					  if (TREE_SIDE_EFFECTS (captures[2]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					  return res;
					}
				      else
					{
/* #line 4136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					  if (cst == captures[2] && cmp == GT_EXPR)
					    {
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4137, __FILE__, __LINE__);
					      tree res_op0;
					      {
						tree ops1[1], res;
						ops1[0] = captures[1];
						if (TREE_TYPE (ops1[0]) != st)
						  res = fold_build1_loc (loc, NOP_EXPR, st, ops1[0]);
						else
						  res = ops1[0];
						res_op0 = res;
					      }
					      tree res_op1;
					      res_op1 =  build_zero_cst (st);
					      tree res;
					      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
					      if (TREE_SIDE_EFFECTS (captures[2]))
						res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					      return res;
					    }
					  else
					    {
/* #line 4138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      if (cmp == LE_EXPR)
						{
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4139, __FILE__, __LINE__);
						  tree res_op0;
						  {
						    tree ops1[1], res;
						    ops1[0] = captures[1];
						    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, ops1[0]);
						    res_op0 = res;
						  }
						  tree res_op1;
						  res_op1 =  build_zero_cst (st);
						  tree res;
						  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
						  if (TREE_SIDE_EFFECTS (captures[2]))
						    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
						  return res;
						}
					      else
						{
/* #line 4140 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						  if (cmp == GT_EXPR)
						    {
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4141, __FILE__, __LINE__);
						      tree res_op0;
						      {
							tree ops1[1], res;
							ops1[0] = captures[1];
							res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, ops1[0]);
							res_op0 = res;
						      }
						      tree res_op1;
						      res_op1 =  build_zero_cst (st);
						      tree res;
						      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
						      if (TREE_SIDE_EFFECTS (captures[2]))
							res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
						      return res;
						    }
						}
					    }
					}
				  }
				}
			    }
			}
		    }
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_257 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1595, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[3];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_258 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type) && (!FLOAT_TYPE_P (type) || flag_associative_math))
    {
/* #line 2143 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2151, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, plusminus, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res;
	  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_259 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2743 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2749 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (types_match (type, TREE_TYPE (captures[2])) && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2])) && !overflow)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2751, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 =  wide_int_to_tree (type, mul);
	      tree res;
	      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
	      return res;
	    }
	  else
	    {
	      {
/* #line 2752 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		  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__);
		  tree res_op0;
		  {
		    tree ops1[2], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[0];
		      if (TREE_TYPE (ops2[0]) != utype)
			res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
		      else
		        res = ops2[0];
		      ops1[0] = res;
		    }
		    {
		      tree ops2[2], res;
		      {
			tree ops3[1], res;
			ops3[0] = captures[1];
			if (TREE_TYPE (ops3[0]) != utype)
			  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
			else
			  res = ops3[0];
			ops2[0] = res;
		      }
		      {
			tree ops3[1], res;
			ops3[0] = captures[2];
			if (TREE_TYPE (ops3[0]) != utype)
			  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
			else
			  res = ops3[0];
			ops2[1] = res;
		      }
		      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		      ops1[1] = res;
		    }
		    res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    res_op0 = res;
		  }
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  return res;
	      }
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_260 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1403 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops2[0]);
	  ops1[0] = res;
	}
	ops1[1] = captures[3];
	res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3833, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 = captures[1];
  tree res;
  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_262 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (minmax))
{
/* #line 2247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2251, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[1];
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[2];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_263 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3839, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[1];
  tree res_op1;
  res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
  tree res;
  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TREE_INT_CST_LOW (captures[1]) & 1)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1659, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == NE_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_265 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 304 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!integer_zerop (captures[0]) && !ALL_FRACT_MODE_P (TYPE_MODE (type)))
    {
      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 res;
      res =  build_one_cst (type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_266 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4577 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!TREE_OVERFLOW (captures[2]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4578, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] =  build_one_cst (type);
	    res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op1 = res;
	  }
	  tree res;
	  res = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
	  if (!res)
	    return NULL_TREE;
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5156, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_268 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3732 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
/* #line 3733 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (tem && !TREE_OVERFLOW (tem))
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3734, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 =  tem;
	      tree res;
	      res = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_269 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (eqcmp))
{
/* #line 3704 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])))
    {
      {
/* #line 3705 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if ((mask & (mask + 1)) == 0 && wi::gt_p (rhs, 0, sgn) && (rhs & (rhs + 1)) == 0 && wi::ge_p (mask, rhs, sgn))
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3715, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		ops1[0] = captures[1];
		ops1[1] =  wide_int_to_tree (ty, mask - rhs);
		res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 =  build_zero_cst (ty);
	      tree res;
	      res = fold_build2_loc (loc, eqcmp, type, res_op0, res_op1);
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_270 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3858, __FILE__, __LINE__);
  tree res_op0;
  res_op0 = captures[0];
  tree res_op1;
  res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
  tree res;
  res = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_271 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4209, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
      tree res;
      res = fold_build2_loc (loc, out, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_272 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 2303 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2305, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == NE_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      return res;
    }
  else
    {
/* #line 2306 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2308, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res;
	  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  ops1[0] = res;
	}
	ops1[1] = captures[0];
	res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_275 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (opo), const enum tree_code ARG_UNUSED (opi))
{
  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__);
  tree res_op0;
  {
    tree ops1[1], res;
    ops1[0] = captures[1];
    res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    res_op0 = res;
  }
  tree res_op1;
  res_op1 = captures[2];
  tree res;
  res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 2539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree shift_type = TREE_TYPE (captures[2]);
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2545, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (TREE_TYPE (ops2[0]) != shift_type)
		res = fold_build1_loc (loc, NOP_EXPR, shift_type, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (copysigns))
{
/* #line 671 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  else
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
)
{
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5184, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res_op2;
      res_op2 = captures[2];
      tree res;
      res = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
      if (!res)
        return NULL_TREE;
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_279 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0])))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1910, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[2];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res;
	      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (! FLOAT_TYPE_P (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!integer_zerop (captures[1]))
    {
      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 res;
      res = captures[0];
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_282 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2297, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, out, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_284 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (HYPOT))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4678, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	res = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 =  build_real_truncate (type, dconst_sqrt2 ());
      tree res;
      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_285 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 2312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2314, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == NE_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      return res;
    }
  else
    {
/* #line 2315 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2317, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res;
	  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_286 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  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__);
  tree res_op0;
  res_op0 = captures[0];
  tree res;
  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
  if (TREE_SIDE_EFFECTS (captures[2]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (single_use (captures[0]) && single_use (captures[2]))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3253, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[3];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_288 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2360, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  if (TREE_SIDE_EFFECTS (captures[1]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_289 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3273 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3290 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (newtype))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3291, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[1];
		if (TREE_TYPE (ops1[0]) != newtype)
		  res = fold_build1_loc (loc, NOP_EXPR, newtype, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res_op1;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (TREE_TYPE (ops1[0]) != newtype)
		  res = fold_build1_loc (loc, NOP_EXPR, newtype, ops1[0]);
		else
		  res = ops1[0];
		res_op1 = res;
	      }
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_290 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (code == LT_EXPR || code == GE_EXPR)
	    {
/* #line 1493 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (TREE_OVERFLOW (lo))
		{
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		  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 res;
		  res =  build_int_cst (type, (code == LT_EXPR) ^ neg_overflow);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	      else
		{
/* #line 1495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (code == LT_EXPR)
		    {
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		      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__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      res_op1 =  lo;
		      tree res;
		      res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		  else
		    {
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		      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__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      res_op1 =  lo;
		      tree res;
		      res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		}
	    }
	  else
	    {
/* #line 1498 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (code == LE_EXPR || code == GT_EXPR)
		{
/* #line 1499 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (TREE_OVERFLOW (hi))
		    {
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		      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 res;
		      res =  build_int_cst (type, (code == LE_EXPR) ^ neg_overflow);
		      if (TREE_SIDE_EFFECTS (captures[1]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		      return res;
		    }
		  else
		    {
/* #line 1501 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (code == LE_EXPR)
			{
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
			  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__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res_op1;
			  res_op1 =  hi;
			  tree res;
			  res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
			  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__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res_op1;
			  res_op1 =  hi;
			  tree res;
			  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
			  return res;
			}
		    }
		}
	      else
		{
/* #line 1504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (!lo && !hi)
		    {
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
		      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 res;
		      res =  build_int_cst (type, code == NE_EXPR);
		      if (TREE_SIDE_EFFECTS (captures[1]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		      return res;
		    }
		  else
		    {
/* #line 1506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (code == EQ_EXPR && !hi)
			{
			  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
			  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__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res_op1;
			  res_op1 =  lo;
			  tree res;
			  res = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
/* #line 1508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (code == EQ_EXPR && !lo)
			    {
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      res_op1 =  hi;
			      tree res;
			      res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
			      return res;
			    }
			  else
			    {
/* #line 1510 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (code == NE_EXPR && !hi)
				{
				  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  res_op1 =  lo;
				  tree res;
				  res = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
				  return res;
				}
			      else
				{
/* #line 1512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (code == NE_EXPR && !lo)
				    {
				      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      res_op1 =  hi;
				      tree res;
				      res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
				      return res;
				    }
				  else
				    {
/* #line 1514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (1)
					{
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
					  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 res;
					  res =  build_range_check (UNKNOWN_LOCATION, type, captures[1], code == EQ_EXPR, lo, hi);
					  return res;
					}
				      else
					{
					  {
/* #line 1517 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree etype = range_check_type (TREE_TYPE (captures[1]));
 if (etype) { hi = fold_convert (etype, hi);
 lo = fold_convert (etype, lo);
 hi = const_binop (MINUS_EXPR, etype, hi, lo);
 }/* #line 1527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      if (etype && hi && !TREE_OVERFLOW (hi))
						{
/* #line 1528 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						  if (code == EQ_EXPR)
						    {
						      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
						      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1529, __FILE__, __LINE__);
						      tree res_op0;
						      {
							tree ops1[2], res;
							{
							  tree ops2[1], res;
							  ops2[0] = captures[1];
							  if (TREE_TYPE (ops2[0]) != etype)
							    res = fold_build1_loc (loc, NOP_EXPR, etype, ops2[0]);
							  else
							    res = ops2[0];
							  ops1[0] = res;
							}
							ops1[1] =  lo;
							res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
							res_op0 = res;
						      }
						      tree res_op1;
						      res_op1 =  hi;
						      tree res;
						      res = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
						      return res;
						    }
						  else
						    {
						      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
						      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1530, __FILE__, __LINE__);
						      tree res_op0;
						      {
							tree ops1[2], res;
							{
							  tree ops2[1], res;
							  ops2[0] = captures[1];
							  if (TREE_TYPE (ops2[0]) != etype)
							    res = fold_build1_loc (loc, NOP_EXPR, etype, ops2[0]);
							  else
							    res = ops2[0];
							  ops1[0] = res;
							}
							ops1[1] =  lo;
							res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
							res_op0 = res;
						      }
						      tree res_op1;
						      res_op1 =  hi;
						      tree res;
						      res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
						      return res;
						    }
						}
					  }
					}
				    }
				}
			    }
			}
		    }
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_291 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_292 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (fold_real_zero_addition_p (type, captures[1], 0))
    {
      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 res_op0;
      res_op0 = captures[0];
      tree res;
      res = non_lvalue_loc (loc, res_op0);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1581, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[2];
      tree res_op1;
      res_op1 = captures[1];
      tree res;
      res = fold_build2_loc (loc, op, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_294 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
/* #line 3109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3114, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[1], res;
	{
	  tree ops2[3], res;
	  ops2[0] = captures[2];
	  {
	    tree ops3[1], res;
	    ops3[0] = captures[3];
	    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops3[0]), ops3[0]);
	    ops2[1] = res;
	  }
	  ops2[2] = captures[4];
	  res = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (ops2[1]), ops2[0], ops2[1], ops2[2]);
	  ops1[0] = res;
	}
	res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_295 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3810 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (SSA_NAME_IS_DEFAULT_DEF (captures[1]) && TREE_CODE (SSA_NAME_VAR (captures[1])) == PARM_DECL)
    {
      {
/* #line 3812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree base = get_base_address (TREE_OPERAND (captures[0], 0));
/* #line 3813 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_CODE (base) == VAR_DECL && auto_var_in_fn_p (base, current_function_decl))
	    {
/* #line 3815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (cmp == NE_EXPR)
		{
		  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3816, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (true, type);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	      else
		{
		  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3817, __FILE__, __LINE__);
		  tree res;
		  res =  constant_boolean_node (false, type);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_296 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (utype)
	{
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
	  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__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[1];
		if (TREE_TYPE (ops3[0]) != utype)
		  res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
		else
		  res = ops3[0];
		ops2[1] = res;
	      }
	      res = fold_build2_loc (loc, op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      if (TREE_TYPE (ops2[0]) != utype)
		res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_297 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (~wi::to_wide (captures[1]) == wi::to_wide (captures[2]))
    {
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      res_op1 = captures[2];
      tree res;
      res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_298 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4047 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4054, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res_op1;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
	  res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
	else
	  res = ops1[0];
	res_op1 = res;
      }
      tree res;
      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_299 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3828, __FILE__, __LINE__);
      tree res;
      res =  constant_boolean_node (cmp == NE_EXPR, type);
      if (TREE_SIDE_EFFECTS (captures[1]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
      if (TREE_SIDE_EFFECTS (captures[2]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
      if (TREE_SIDE_EFFECTS (captures[3]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_300 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_301 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4715 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (optimize && canonicalize_math_p ())
    {
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4718, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	{
	  res = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (ops1[0]), 1, ops1[0]);
	  if (!res)
	    return NULL_TREE;
	}
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_302 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_303 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3667, __FILE__, __LINE__);
  tree res;
  res = captures[1];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_304 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const enum tree_code ARG_UNUSED (rotate))
{
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2557 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree rotate_type = TREE_TYPE (captures[2]);
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2559, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (TREE_TYPE (ops2[0]) != rotate_type)
		res = fold_build1_loc (loc, NOP_EXPR, rotate_type, ops2[0]);
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    res = fold_build2_loc (loc, rotate, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_305 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
  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 res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_306 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (neg_cmp))
{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      {
/* #line 4266 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, captures[2], captures[1]);
/* #line 4268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (tem && !(REAL_VALUE_ISINF (TREE_REAL_CST (tem)) || (real_zerop (tem) && !real_zerop (captures[1]))))
	    {
/* #line 4272 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[1])))
		{
		  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4273, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  res_op1 =  tem;
		  tree res;
		  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
		  return res;
		}
	      else
		{
/* #line 4274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0))
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4275, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 =  tem;
		      tree res;
		      res = fold_build2_loc (loc, neg_cmp, type, res_op0, res_op1);
		      return res;
		    }
		}
	    }
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_307 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
    {
/* #line 1454 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1]))
	{
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[2];
	  tree res;
	  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
      else
	{
/* #line 1456 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1]))))
	    {
	      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__);
	      tree res_op0;
	      res_op0 = captures[2];
	      tree res_op1;
	      res_op1 = captures[0];
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      if (TREE_SIDE_EFFECTS (captures[1]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_308 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
)
{
/* #line 1230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!HONOR_SIGN_DEPENDENT_ROUNDING (element_mode (type)) && !HONOR_SIGNED_ZEROS (element_mode (type)))
    {
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	res_op0 = res;
      }
      tree res_op1;
      res_op1 = captures[0];
      tree res;
      res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_309 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (!TYPE_SATURATING (type) && (!FLOAT_TYPE_P (type) || flag_associative_math))
    {
/* #line 2153 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!ALL_FRACT_MODE_P (TYPE_MODE (type)))
	{
/* #line 2165 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2171, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		ops1[0] = captures[2];
		ops1[1] =  build_one_cst (type);
		res = fold_build2_loc (loc, plusminus, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res;
	      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_310 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree ARG_UNUSED (op2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[3]);
/* #line 5282 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (element_precision (type) == element_precision (op_type))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5283, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[4], res;
	    ops1[0] = captures[0];
	    ops1[1] = captures[1];
	    ops1[2] = captures[2];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[4];
	      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      ops1[3] = res;
	    }
	    {
	      res = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (ops1[1]), 4, ops1[0], ops1[1], ops1[2], ops1[3]);
	      if (!res)
	        return NULL_TREE;
	    }
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	  if (TREE_SIDE_EFFECTS (captures[3]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
	  return res;
	}
  }
  return NULL_TREE;
}

static tree
generic_simplify_311 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS))
{
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4593 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1]))
	{
	  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__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res;
	  res = maybe_build_call_expr_loc (loc, COS, type, 1, res_op0);
	  if (!res)
	    return NULL_TREE;
	  return res;
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_312 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3766 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_CODE (captures[2]) == INTEGER_CST)
	    {
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      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 res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 =  force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2]));
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
	  else
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3769, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
		  res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
		else
		  res = ops1[0];
		res_op1 = res;
	      }
	      tree res;
	      res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
	      return res;
	    }
	}
      else
	{
/* #line 3771 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])))
	    {
/* #line 3773 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))))
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3785, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[3];
		    if (TREE_TYPE (ops1[0]) != TREE_TYPE (res_op0))
		      res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), ops1[0]);
		    else
		      res = ops1[0];
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
		  return res;
		}
	      else
		{
/* #line 3786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3796 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (above || below)
			    {
/* #line 3797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (cmp == EQ_EXPR || cmp == NE_EXPR)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3798, __FILE__, __LINE__);
				  tree res;
				  res =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  if (TREE_SIDE_EFFECTS (captures[2]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
				  return res;
				}
			      else
				{
/* #line 3799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (cmp == LT_EXPR || cmp == LE_EXPR)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3800, __FILE__, __LINE__);
				      tree res;
				      res =  constant_boolean_node (above ? true : false, type);
				      if (TREE_SIDE_EFFECTS (captures[1]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				      if (TREE_SIDE_EFFECTS (captures[2]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
				      return res;
				    }
				  else
				    {
/* #line 3801 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (cmp == GT_EXPR || cmp == GE_EXPR)
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3802, __FILE__, __LINE__);
					  tree res;
					  res =  constant_boolean_node (above ? false : true, type);
					  if (TREE_SIDE_EFFECTS (captures[1]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
					  if (TREE_SIDE_EFFECTS (captures[2]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					  return res;
					}
				    }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return NULL_TREE;
}

static tree
generic_simplify_313 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 ||0) && ( TYPE_PRECISION (TREE_TYPE (captures[0])) < TYPE_PRECISION (type) || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT || !type_has_mode_precision_p (type)))
    {
      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__);
      tree res_op0;
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops1[0]))
	    res = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	res = fold_build2_loc (loc, bitop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  return NULL_TREE;
}

static tree
generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2855, __FILE__, __LINE__);
  tree res;
  res = captures[0];
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_315 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
)
{
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2186, __FILE__, __LINE__);
  tree res;
  res = captures[1];
  if (TREE_SIDE_EFFECTS (captures[0]))
    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
  return res;
  return NULL_TREE;
}

static tree
generic_simplify_316 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
 tree ARG_UNUSED (op0), tree ARG_UNUSED (op1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4225 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    {
      {
/* #line 4226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4227, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      ops2[0] = captures[2];
	      ops2[1] = captures[1];
	      {
	        res = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, ops2[0], ops2[1]);
	        if (!res)
	          return NULL_TREE;
	      }
	      ops1[0] = res;
	    }
	    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 =  build_zero_cst (t);
	  tree res;
	  res = fold_build2_loc (loc, out, type, res_op0, res_op1);
	  return res;
      }
    }
  return NULL_TREE;
}

static tree
generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 117 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 117 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
		  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__);
		  tree res_op0;
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[0];
		    res = fold_build1_loc (loc, ABSU_EXPR, utype, ops1[0]);
		    res_op0 = res;
		  }
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  return res;
	      }
	    }
	}
        break;
      }
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 1168 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  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 res;
	  res = captures[0];
	  return res;
	}
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 1178 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res;
	  res = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 1187 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      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 res;
      res = captures[0];
      return res;
    }
  }
  return NULL_TREE;
}

static tree
generic_simplify_BIT_NOT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 825 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
		tree res = generic_simplify_192 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      {
/* #line 825 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o20 };
		tree res = generic_simplify_192 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 830 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
		tree res = generic_simplify_99 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      {
/* #line 830 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o20 };
		tree res = generic_simplify_99 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 1364 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	  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 res;
	  res = captures[0];
	  return res;
	}
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 1369 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o30 };
		tree res = generic_simplify_215 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_each_onep (o31))
		{
		  {
/* #line 1381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
		    tree res = generic_simplify_16 (loc, type, op0, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_all_onesp (o31))
		{
		  {
/* #line 1386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
		    tree res = generic_simplify_207 (loc, type, op0, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1393 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
		      tree res = generic_simplify_162 (loc, type, op0, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o30))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 1397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o40, o31 };
		      tree res = generic_simplify_21 (loc, type, op0, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o31))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o31, 0);
		    {
/* #line 1397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
		      tree res = generic_simplify_21 (loc, type, op0, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case RSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o40))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o50 = TREE_OPERAND (o40, 0);
			  {
/* #line 2539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
			    tree res = generic_simplify_149 (loc, type, op0, captures);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 2539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
		      tree res = generic_simplify_149 (loc, type, op0, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case LROTATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o40))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o50 = TREE_OPERAND (o40, 0);
			  {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
			    tree res = generic_simplify_304 (loc, type, op0, captures, LROTATE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
		      tree res = generic_simplify_304 (loc, type, op0, captures, LROTATE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case RROTATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o40))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o50 = TREE_OPERAND (o40, 0);
			  {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
			    tree res = generic_simplify_304 (loc, type, op0, captures, RROTATE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
		      tree res = generic_simplify_304 (loc, type, op0, captures, RROTATE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 1369 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	  tree res = generic_simplify_215 (loc, type, op0, captures);
	  if (res) return res;
	}
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_each_onep (o21))
	  {
	    {
/* #line 1381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_16 (loc, type, op0, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_all_onesp (o21))
	  {
	    {
/* #line 1386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_207 (loc, type, op0, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 1393 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		tree res = generic_simplify_162 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 1397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
		tree res = generic_simplify_21 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      {
/* #line 1397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
		tree res = generic_simplify_21 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case RSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o30))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 2539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
		      tree res = generic_simplify_276 (loc, type, op0, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 2539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
		tree res = generic_simplify_276 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case LROTATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o30))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
		      tree res = generic_simplify_48 (loc, type, op0, captures, LROTATE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
		tree res = generic_simplify_48 (loc, type, op0, captures, LROTATE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case RROTATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o30))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
		      tree res = generic_simplify_48 (loc, type, op0, captures, RROTATE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
		tree res = generic_simplify_48 (loc, type, op0, captures, RROTATE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
	  if (res) return res;
	}
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case UNORDERED_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
	  if (res) return res;
	}
        break;
      }
    case ORDERED_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
	  if (res) return res;
	}
        break;
      }
    case UNLT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case UNLE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case UNGT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case UNGE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case UNEQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case LTGT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 3166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  tree res = generic_simplify_89 (loc, type, op0, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_ABSU_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case ABSU_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 1172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
/* #line 1172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
		  {
		    if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
		    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 res;
		    res = captures[1];
		    return res;
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 1182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res;
	  res = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 1191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      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__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
      return res;
    }
  }
  return NULL_TREE;
}

static tree
generic_simplify_NEGATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (tree_negate_expr_p (o21))
	  {
	    {
/* #line 1230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_308 (loc, type, op0, captures);
	      if (res) return res;
	    }
	  }
	if (tree_negate_expr_p (o20))
	  {
	    {
/* #line 1230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_308 (loc, type, op0, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 1237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)))
	    {
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 = captures[0];
	      tree res;
	      res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 1244 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1244 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TYPE_OVERFLOW_UNDEFINED (type))
	    {
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      res_op1 = captures[0];
	      tree res;
	      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o30 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		if (!TYPE_SATURATING (type))
		  {
/* #line 1850 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1856, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res;
			res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			return res;
		      }
		  }
	      }
	      break;
	    }
          default:;
          }
      if (tree_negate_expr_p (o20))
	{
	  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    if (!TYPE_SATURATING (type))
	      {
/* #line 1859 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)))
		  {
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1864, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[0];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	      }
	  }
        }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_FMAF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
	      tree res = generic_simplify_106 (loc, type, op0, captures, CFN_BUILT_IN_FMAF);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_FMA:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
	      tree res = generic_simplify_106 (loc, type, op0, captures, CFN_BUILT_IN_FMA);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_FMAL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
	      tree res = generic_simplify_106 (loc, type, op0, captures, CFN_BUILT_IN_FMAL);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_FMA:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
	      tree res = generic_simplify_106 (loc, type, op0, captures, CFN_FMA);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_FMS:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (canonicalize_math_after_vectorization_p ())
		{
/* #line 5173 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (single_use (captures[0]))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5174, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      res_op1 = captures[2];
		      tree res_op2;
		      res_op2 = captures[3];
		      tree res;
		      res = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
		      if (!res)
		        return NULL_TREE;
		      return res;
		    }
		}
	    }
	    break;
	  }
	case CFN_FNMA:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (canonicalize_math_after_vectorization_p ())
		{
/* #line 5187 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (single_use (captures[0]))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5188, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      res_op1 = captures[2];
		      tree res_op2;
		      res_op2 = captures[3];
		      tree res;
		      res = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
		      if (!res)
		        return NULL_TREE;
		      return res;
		    }
		}
	    }
	    break;
	  }
	case CFN_FNMS:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    tree o22 = CALL_EXPR_ARG (op0, 2);
	    {
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
/* #line 5146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (canonicalize_math_after_vectorization_p ())
		{
/* #line 5201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (single_use (captures[0]))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5202, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res_op1;
		      res_op1 = captures[2];
		      tree res_op2;
		      res_op2 = captures[3];
		      tree res;
		      res = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
		      if (!res)
		        return NULL_TREE;
		      return res;
		    }
		}
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (tree_nop_convert (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case BIT_NOT_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    {
/* #line 1376 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o30 };
	      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__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, ops1[0]);
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 =  build_each_one_cst (type);
	      tree res;
	      res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	    break;
	  }
	case NEGATE_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o30 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!TYPE_SATURATING (type))
		{
/* #line 1867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0])))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1869, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res;
		      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
		      return res;
		    }
		}
	    }
	    break;
	  }
        default:;
        }
}
}
  return NULL_TREE;
}

static tree
generic_simplify_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
		      tree res = generic_simplify_262 (loc, type, op0, captures, MIN_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
		      tree res = generic_simplify_262 (loc, type, op0, captures, MAX_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  {
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2569, __FILE__, __LINE__);
	tree res;
	res = captures[0];
	return res;
      }
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  {
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2652, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  return res;
		}
	      else
		{
/* #line 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2663, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
/* #line 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2673, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res;
			  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			  return res;
			}
		      else
			{
/* #line 2686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2696, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res;
			      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			      return res;
			    }
			  else
			    {
/* #line 2700 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2705, __FILE__, __LINE__);
				  tree res_op0;
				  {
				    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)));
				    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    res_op0 = res;
				  }
				  tree res;
				  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				  return res;
				}
			      else
				{
/* #line 2713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2717, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      return res;
				    }
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  {
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2652, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  return res;
		}
	      else
		{
/* #line 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2663, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
/* #line 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2673, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res;
			  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			  return res;
			}
		      else
			{
/* #line 2686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2696, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res;
			      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			      return res;
			    }
			  else
			    {
/* #line 2700 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2705, __FILE__, __LINE__);
				  tree res_op0;
				  {
				    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)));
				    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    res_op0 = res;
				  }
				  tree res;
				  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				  return res;
				}
			      else
				{
/* #line 2713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2717, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      return res;
				    }
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		  {
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2729, __FILE__, __LINE__);
		    tree res_op0;
		    res_op0 = captures[0];
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    if (TREE_SIDE_EFFECTS (captures[1]))
		      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		    return res;
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o21, 0);
		    {
/* #line 4884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 };
		      tree res = generic_simplify_25 (loc, type, op0, captures, PLUS_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      {
/* #line 4884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 };
		tree res = generic_simplify_104 (loc, type, op0, captures, PLUS_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o21, 0);
		    {
/* #line 4884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 };
		      tree res = generic_simplify_25 (loc, type, op0, captures, MINUS_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      {
/* #line 4884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 };
		tree res = generic_simplify_104 (loc, type, op0, captures, MINUS_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_VIEW_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  {
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2569, __FILE__, __LINE__);
	tree res;
	res = captures[0];
	return res;
      }
  }
  switch (TREE_CODE (op0))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2574 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2574, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res;
	  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    default:;
    }
  {
/* #line 2580 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2580 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2583, __FILE__, __LINE__);
	tree res_op0;
	res_op0 = captures[0];
	tree res;
	res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	return res;
      }
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2589 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
/* #line 2589 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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])))))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2595, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res;
	      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	      return res;
	    }
	}
        break;
      }
    case CONSTRUCTOR:
      {
	{
/* #line 2600 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2600 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (TREE_CODE (captures[0]) != SSA_NAME && CONSTRUCTOR_NELTS (captures[0]) == 0)
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2602, __FILE__, __LINE__);
	      tree res;
	      res =  build_zero_cst (type);
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      return res;
	    }
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_FLOAT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  {
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2569, __FILE__, __LINE__);
	tree res;
	res = captures[0];
	return res;
      }
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  {
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2652, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res;
		  res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
		  return res;
		}
	      else
		{
/* #line 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2663, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
/* #line 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2673, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res;
			  res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
			  return res;
			}
		      else
			{
/* #line 2686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2696, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res;
			      res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
			      return res;
			    }
			  else
			    {
/* #line 2700 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2705, __FILE__, __LINE__);
				  tree res_op0;
				  {
				    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)));
				    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    res_op0 = res;
				  }
				  tree res;
				  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				  return res;
				}
			      else
				{
/* #line 2713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2717, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      return res;
				    }
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  {
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2652, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res;
		  res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
		  return res;
		}
	      else
		{
/* #line 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2663, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
/* #line 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2673, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res;
			  res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
			  return res;
			}
		      else
			{
/* #line 2686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2696, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res;
			      res = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
			      return res;
			    }
			  else
			    {
/* #line 2700 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2705, __FILE__, __LINE__);
				  tree res_op0;
				  {
				    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)));
				    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    res_op0 = res;
				  }
				  tree res;
				  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				  return res;
				}
			      else
				{
/* #line 2713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2717, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      return res;
				    }
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_FIX_TRUNC_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  {
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (1 && type == TREE_TYPE (captures[0])))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2569, __FILE__, __LINE__);
	tree res;
	res = captures[0];
	return res;
      }
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  {
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2652, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res;
		  res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
		  return res;
		}
	      else
		{
/* #line 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2663, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
/* #line 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2673, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res;
			  res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
			  return res;
			}
		      else
			{
/* #line 2686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2696, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res;
			      res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
			      return res;
			    }
			  else
			    {
/* #line 2700 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2705, __FILE__, __LINE__);
				  tree res_op0;
				  {
				    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)));
				    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    res_op0 = res;
				  }
				  tree res;
				  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				  return res;
				}
			      else
				{
/* #line 2713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2717, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      return res;
				    }
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  {
/* #line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 2646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (((0 && useless_type_conversion_p (type, inside_type)) || (1 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2652, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res;
		  res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
		  return res;
		}
	      else
		{
/* #line 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2663, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
		      return res;
		    }
		  else
		    {
/* #line 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			{
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2673, __FILE__, __LINE__);
			  tree res_op0;
			  res_op0 = captures[1];
			  tree res;
			  res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
			  return res;
			}
		      else
			{
/* #line 2686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2696, __FILE__, __LINE__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res;
			      res = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
			      return res;
			    }
			  else
			    {
/* #line 2700 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (0 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2705, __FILE__, __LINE__);
				  tree res_op0;
				  {
				    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)));
				    res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    res_op0 = res;
				  }
				  tree res;
				  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				  return res;
				}
			      else
				{
/* #line 2713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (0 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2717, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      return res;
				    }
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_PAREN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    case PAREN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2611 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2611, __FILE__, __LINE__);
	  tree res;
	  res = captures[0];
	  return res;
	}
        break;
      }
    default:;
    }
if (CONSTANT_CLASS_P (op0))
  {
    {
/* #line 2608 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2608, __FILE__, __LINE__);
      tree res;
      res = captures[0];
      return res;
    }
  }
  return NULL_TREE;
}

static tree
generic_simplify_REALPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    case COMPLEX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2815, __FILE__, __LINE__);
	  tree res;
	  res = captures[0];
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CONJ_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 2823 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2823, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[1], res;
		  ops1[0] = captures[2];
		  res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		return res;
	      }
	      break;
	    }
	  case PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		const enum tree_code op = PLUS_EXPR;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[0] = res;
		  }
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[3];
		    res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[1] = res;
		  }
		  res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		return res;
	      }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		const enum tree_code op = MINUS_EXPR;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[0] = res;
		  }
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[3];
		    res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[1] = res;
		  }
		  res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		return res;
	      }
	      break;
	    }
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o20))
	      {
	      case CFN_BUILT_IN_CEXPIF:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  {
/* #line 2834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2834, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      {
		        res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (ops1[0]), 1, ops1[0]);
		        if (!res)
		          return NULL_TREE;
		      }
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPI:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  {
/* #line 2834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2834, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      {
		        res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (ops1[0]), 1, ops1[0]);
		        if (!res)
		          return NULL_TREE;
		      }
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPIL:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  {
/* #line 2834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2834, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      {
		        res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (ops1[0]), 1, ops1[0]);
		        if (!res)
		          return NULL_TREE;
		      }
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case CONJ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2823 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2823, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[2];
	    res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
	  const enum tree_code op = PLUS_EXPR;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
	  const enum tree_code op = MINUS_EXPR;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_CEXPIF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    {
/* #line 2834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2834, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		{
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (ops1[0]), 1, ops1[0]);
		  if (!res)
		    return NULL_TREE;
		}
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_CEXPI:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    {
/* #line 2834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2834, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		{
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (ops1[0]), 1, ops1[0]);
		  if (!res)
		    return NULL_TREE;
		}
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_CEXPIL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    {
/* #line 2834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2834, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		{
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (ops1[0]), 1, ops1[0]);
		  if (!res)
		    return NULL_TREE;
		}
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_IMAGPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    case COMPLEX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2818 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2818, __FILE__, __LINE__);
	  tree res;
	  res = captures[1];
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CONJ_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 2826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2826, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[1], res;
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[0] = res;
		  }
		  res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		return res;
	      }
	      break;
	    }
	  case PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		const enum tree_code op = PLUS_EXPR;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[0] = res;
		  }
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[3];
		    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[1] = res;
		  }
		  res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		return res;
	      }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		const enum tree_code op = MINUS_EXPR;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[0] = res;
		  }
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[3];
		    res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    ops1[1] = res;
		  }
		  res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		return res;
	      }
	      break;
	    }
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o20))
	      {
	      case CFN_BUILT_IN_CEXPIF:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  {
/* #line 2837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2837, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      {
		        res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (ops1[0]), 1, ops1[0]);
		        if (!res)
		          return NULL_TREE;
		      }
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPI:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  {
/* #line 2837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2837, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      {
		        res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (ops1[0]), 1, ops1[0]);
		        if (!res)
		          return NULL_TREE;
		      }
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPIL:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  {
/* #line 2837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2837, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      {
		        res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (ops1[0]), 1, ops1[0]);
		        if (!res)
		          return NULL_TREE;
		      }
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		    return res;
		  }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case CONJ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2826, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[0] = res;
	    }
	    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
	  const enum tree_code op = PLUS_EXPR;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2831 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
	  const enum tree_code op = MINUS_EXPR;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2831, __FILE__, __LINE__);
	  tree res_op0;
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
	      ops1[1] = res;
	    }
	    res = fold_build2_loc (loc, op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op0 = res;
	  }
	  tree res;
	  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	  return res;
	}
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_CEXPIF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    {
/* #line 2837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2837, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		{
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (ops1[0]), 1, ops1[0]);
		  if (!res)
		    return NULL_TREE;
		}
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_CEXPI:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    {
/* #line 2837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2837, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		{
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (ops1[0]), 1, ops1[0]);
		  if (!res)
		    return NULL_TREE;
		}
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_CEXPIL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    {
/* #line 2837 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2837, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		{
		  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (ops1[0]), 1, ops1[0]);
		  if (!res)
		    return NULL_TREE;
		}
		res_op0 = res;
	      }
	      tree res;
	      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	      return res;
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_CONJ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0)
{
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CONJ_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 2842 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o30 };
		tree res = generic_simplify_55 (loc, type, op0, captures);
		if (res) return res;
	      }
	      break;
	    }
	  case COMPLEX_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 2848 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		{
/* #line 2848 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree itype = TREE_TYPE (type);
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2849, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      if (TREE_TYPE (ops1[0]) != itype)
			res = fold_build1_loc (loc, NOP_EXPR, itype, ops1[0]);
		      else
		        res = ops1[0];
		      res_op0 = res;
		    }
		    tree res_op1;
		    {
		      tree ops1[1], res;
		      {
			tree ops2[1], res;
			ops2[0] = captures[3];
			if (TREE_TYPE (ops2[0]) != itype)
			  res = fold_build1_loc (loc, NOP_EXPR, itype, ops2[0]);
			else
			  res = ops2[0];
			ops1[0] = res;
		      }
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		      res_op1 = res;
		    }
		    tree res;
		    res = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
		    return res;
		}
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case CONJ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 2842 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	  tree res = generic_simplify_55 (loc, type, op0, captures);
	  if (res) return res;
	}
        break;
      }
    case COMPLEX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 2848 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
	  {
/* #line 2848 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree itype = TREE_TYPE (type);
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2849, __FILE__, __LINE__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (TREE_TYPE (ops1[0]) != itype)
		  res = fold_build1_loc (loc, NOP_EXPR, itype, ops1[0]);
		else
		  res = ops1[0];
		res_op0 = res;
	      }
	      tree res_op1;
	      {
		tree ops1[1], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[3];
		  if (TREE_TYPE (ops2[0]) != itype)
		    res = fold_build1_loc (loc, NOP_EXPR, itype, ops2[0]);
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		res_op1 = res;
	      }
	      tree res;
	      res = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
	      return res;
	  }
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree op0)
{
  switch (code)
    {
    case ABS_EXPR:
      return generic_simplify_ABS_EXPR (loc, code, type, op0);
    case BIT_NOT_EXPR:
      return generic_simplify_BIT_NOT_EXPR (loc, code, type, op0);
    case ABSU_EXPR:
      return generic_simplify_ABSU_EXPR (loc, code, type, op0);
    case NEGATE_EXPR:
      return generic_simplify_NEGATE_EXPR (loc, code, type, op0);
    CASE_CONVERT:
      return generic_simplify_CONVERT_EXPR (loc, code, type, op0);
    case VIEW_CONVERT_EXPR:
      return generic_simplify_VIEW_CONVERT_EXPR (loc, code, type, op0);
    case FLOAT_EXPR:
      return generic_simplify_FLOAT_EXPR (loc, code, type, op0);
    case FIX_TRUNC_EXPR:
      return generic_simplify_FIX_TRUNC_EXPR (loc, code, type, op0);
    case PAREN_EXPR:
      return generic_simplify_PAREN_EXPR (loc, code, type, op0);
    case REALPART_EXPR:
      return generic_simplify_REALPART_EXPR (loc, code, type, op0);
    case IMAGPART_EXPR:
      return generic_simplify_IMAGPART_EXPR (loc, code, type, op0);
    case CONJ_EXPR:
      return generic_simplify_CONJ_EXPR (loc, code, type, op0);
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res_op0;
	res_op0 = captures[0];
	tree res;
	res = non_lvalue_loc (loc, res_op0);
	return res;
      }
    }
  if (real_zerop (op1))
    {
      {
/* #line 146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_292 (loc, type, op0, op1, captures);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, PLUS_EXPR);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
				{
				  {
/* #line 780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, PLUS_EXPR);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, PLUS_EXPR);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
				{
				  {
/* #line 780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, PLUS_EXPR);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
				      tree res = generic_simplify_297 (loc, type, op0, op1, captures, PLUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
				      tree res = generic_simplify_297 (loc, type, op0, op1, captures, PLUS_EXPR);
				      if (res) return res;
				    }
				    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
		tree res = generic_simplify_225 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	    }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		      {
			{
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			  tree res = generic_simplify_220 (loc, type, op0, op1, captures, PLUS_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
		      {
			{
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o30 };
			  tree res = generic_simplify_220 (loc, type, op0, op1, captures, PLUS_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
if (real_zerop (op0))
  {
    {
/* #line 146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
      tree res = generic_simplify_292 (loc, type, op0, op1, captures);
      if (res) return res;
    }
  }
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_220 (loc, type, op0, op1, captures, PLUS_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_220 (loc, type, op0, op1, captures, PLUS_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_AND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
		  tree res = generic_simplify_225 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_243 (loc, type, op0, op1, captures, PLUS_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_244 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  tree o61 = TREE_OPERAND (o50, 1);
			  switch (TREE_CODE (o61))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 };
				  tree res = generic_simplify_58 (loc, type, op0, op1, captures, PLUS_EXPR);
				  if (res) return res;
				}
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o51))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 };
			    tree res = generic_simplify_58 (loc, type, op0, op1, captures, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_243 (loc, type, op0, op1, captures, PLUS_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_244 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  switch (TREE_CODE (o60))
			    {
			    case BIT_AND_EXPR:
			      {
				tree o70 = TREE_OPERAND (o60, 0);
				tree o71 = TREE_OPERAND (o60, 1);
				switch (TREE_CODE (o71))
				  {
				  case INTEGER_CST:
				    {
				      {
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 };
					tree res = generic_simplify_58 (loc, type, op0, op1, captures, PLUS_EXPR);
					if (res) return res;
				      }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o61))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 };
				  tree res = generic_simplify_58 (loc, type, op0, op1, captures, PLUS_EXPR);
				  if (res) return res;
				}
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case NEGATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op1, o30 };
		tree res = generic_simplify_239 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
		tree res = generic_simplify_239 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	  tree res = generic_simplify_239 (loc, type, op0, op1, captures);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, o20 };
	  tree res = generic_simplify_239 (loc, type, op0, op1, captures);
	  if (res) return res;
	}
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_166 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o51, o20 };
		    tree res = generic_simplify_3 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o50, o20 };
		    tree res = generic_simplify_3 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_245 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o51, o20 };
		    tree res = generic_simplify_245 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if (CONSTANT_CLASS_P (o20))
	  {
	    if (CONSTANT_CLASS_P (op1))
	      {
		{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_129 (loc, type, op0, op1, captures, PLUS_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
	      tree res = generic_simplify_166 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_3 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_3 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_279 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o51, o20 };
		    tree res = generic_simplify_279 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_10 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if (integer_each_onep (op1))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_123 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_nop_convert (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case PLUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    if (CONSTANT_CLASS_P (o31))
	      {
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		      tree res = generic_simplify_14 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case MINUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    if (CONSTANT_CLASS_P (o31))
	      {
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		      tree res = generic_simplify_14 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
        default:;
        }
}
}
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_10 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      if (integer_each_onep (op1))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
		    tree res = generic_simplify_123 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, PLUS_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, PLUS_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, PLUS_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, PLUS_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MULT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_96 (loc, type, op0, op1, captures, PLUS_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
	      tree res = generic_simplify_96 (loc, type, op0, op1, captures, PLUS_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_309 (loc, type, op0, op1, captures, PLUS_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_309 (loc, type, op0, op1, captures, PLUS_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2761 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2761 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
	    {
	      {
/* #line 2762 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
/* #line 2763 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (!TREE_OVERFLOW (tem) || !flag_trapping_math)
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2764, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 =  tem;
		      tree res;
		      res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
		      return res;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2769 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2769 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (SCALAR_FLOAT_TYPE_P (type))
	  {
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2770, __FILE__, __LINE__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res_op1;
	    res_op1 =  build_real (type, dconst2);
	    tree res;
	    res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	    return res;
	  }
	else
	  {
/* #line 2771 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    if (INTEGRAL_TYPE_P (type))
	      {
		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__);
		tree res_op0;
		res_op0 = captures[0];
		tree res_op1;
		res_op1 =  build_int_cst (type, 2);
		tree res;
		res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		return res;
	      }
	  }
      }
    }
  switch (TREE_CODE (op1))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case VEC_COND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      tree o42 = TREE_OPERAND (o30, 2);
	      if (integer_each_onep (o41))
		{
		  if (integer_zerop (o42))
		    {
		      {
/* #line 3109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 };
			tree res = generic_simplify_294 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case VEC_COND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      tree o32 = TREE_OPERAND (o20, 2);
	      if (integer_each_onep (o31))
		{
		  if (integer_zerop (o32))
		    {
		      {
/* #line 3109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op1, o20, o30, o31, o32 };
			tree res = generic_simplify_294 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case VEC_COND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	tree o32 = TREE_OPERAND (op1, 2);
	if (integer_each_onep (o31))
	  {
	    if (integer_zerop (o32))
	      {
		{
/* #line 3109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 };
		  tree res = generic_simplify_294 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case VEC_COND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	tree o22 = TREE_OPERAND (op0, 2);
	if (integer_each_onep (o21))
	  {
	    if (integer_zerop (o22))
	      {
		{
/* #line 3109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op1, op0, o20, o21, o22 };
		  tree res = generic_simplify_294 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case RDIV_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_160 (loc, type, op0, op1, captures, PLUS_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_POPCOUNT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POPCOUNT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 5215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
			tree res = generic_simplify_42 (loc, type, op0, op1, captures, CFN_BUILT_IN_POPCOUNT);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POPCOUNTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 5215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
			tree res = generic_simplify_42 (loc, type, op0, op1, captures, CFN_BUILT_IN_POPCOUNTL);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTLL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POPCOUNTLL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 5215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
			tree res = generic_simplify_42 (loc, type, op0, op1, captures, CFN_BUILT_IN_POPCOUNTLL);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTIMAX:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POPCOUNTIMAX:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 5215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
			tree res = generic_simplify_42 (loc, type, op0, op1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_POINTER_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res_op0;
	res_op0 = captures[0];
	tree res;
	res = non_lvalue_loc (loc, res_op0);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case POINTER_PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 1734 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1734, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res_op1;
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] = captures[3];
	    res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    res_op1 = res;
	  }
	  tree res;
	  res = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
	  return res;
	}
        break;
      }
    default:;
    }
if (integer_zerop (op0))
  {
    {
/* #line 135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      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__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res;
      res = non_lvalue_loc (loc, res_op0);
      return res;
    }
  }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case MINUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      switch (TREE_CODE (o40))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    switch (TREE_CODE (o41))
		      {
		      CASE_CONVERT:
		        {
			  tree o70 = TREE_OPERAND (o41, 0);
			  if ((o70 == op0 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, op0, 0) && types_match (o70, op0)))
			    {
			      {
/* #line 1747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o50 };
/* #line 1747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (1 && type == TREE_TYPE (captures[3]))))
				  {
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1750, __FILE__, __LINE__);
				    tree res;
				    res = captures[3];
				    if (TREE_SIDE_EFFECTS (captures[0]))
				      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
				    return res;
				  }
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case POINTER_DIFF_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1753 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, o30, o40, op0 };
/* #line 1753 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2])))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1754, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[3];
			tree res;
			res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			if (TREE_SIDE_EFFECTS (captures[4]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o30))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      switch (TREE_CODE (o31))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (o31, 0);
		    if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
		      {
			{
/* #line 1747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o40 };
/* #line 1747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((0 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (1 && type == TREE_TYPE (captures[3]))))
			    {
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1750, __FILE__, __LINE__);
			      tree res;
			      res = captures[3];
			      if (TREE_SIDE_EFFECTS (captures[0]))
				res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			      return res;
			    }
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
	  {
	    {
/* #line 1753 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[5] ATTRIBUTE_UNUSED = { o31, op1, op1, o30, op0 };
/* #line 1753 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2])))
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1754, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[3];
		  tree res;
		  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
		  if (TREE_SIDE_EFFECTS (captures[4]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), res);
		  return res;
		}
	    }
	  }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      switch (TREE_CODE (o40))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    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 1765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { op0, o41 };
				{
/* #line 1765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
				    if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1766, __FILE__, __LINE__);
				    tree res_op0;
				    res_op0 = captures[0];
				    tree res_op1;
				    res_op1 =  algn;
				    tree res;
				    res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
				    return res;
				}
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_MINUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res_op0;
	res_op0 = captures[0];
	tree res;
	res = non_lvalue_loc (loc, res_op0);
	return res;
      }
    }
  if (real_zerop (op1))
    {
      {
/* #line 152 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 152 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (fold_real_zero_addition_p (type, captures[1], 1))
	  {
	    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 res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = non_lvalue_loc (loc, res_op0);
	    if (TREE_SIDE_EFFECTS (captures[1]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	    return res;
	  }
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 162 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 162 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (!FLOAT_TYPE_P (type) || !HONOR_NANS (type))
	  {
	    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 res;
	    res =  build_zero_cst (type);
	    if (TREE_SIDE_EFFECTS (captures[0]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case MULT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    switch (TREE_CODE (o50))
		      {
		      case TRUNC_DIV_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  tree o61 = TREE_OPERAND (o50, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o61 };
				    tree res = generic_simplify_93 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    switch (TREE_CODE (o51))
		      {
		      case TRUNC_DIV_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o51, 0);
			  tree o71 = TREE_OPERAND (o51, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { o70, o71, o20, o50 };
				    tree res = generic_simplify_93 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case MULT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      switch (TREE_CODE (o40))
	        {
		case TRUNC_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o20, o51 };
			      tree res = generic_simplify_93 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o41))
	        {
		case TRUNC_DIV_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o41, 0);
		    tree o61 = TREE_OPERAND (o41, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o40 };
			      tree res = generic_simplify_93 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case MULT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      switch (TREE_CODE (o40))
	        {
		case TRUNC_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o51 };
			      tree res = generic_simplify_93 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o41))
	        {
		case TRUNC_DIV_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o41, 0);
		    tree o61 = TREE_OPERAND (o41, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, op0, o40 };
			      tree res = generic_simplify_93 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o30))
	  {
	  case TRUNC_DIV_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, op0, o41 };
			tree res = generic_simplify_93 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o31))
	  {
	  case TRUNC_DIV_EXPR:
	    {
	      tree o50 = TREE_OPERAND (o31, 0);
	      tree o51 = TREE_OPERAND (o31, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o30 };
			tree res = generic_simplify_93 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 };
			      tree res = generic_simplify_165 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 };
			      tree res = generic_simplify_165 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 };
			      tree res = generic_simplify_165 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 };
			      tree res = generic_simplify_165 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
/* #line 768 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				if (~wi::to_wide (captures[2]) == wi::to_wide (captures[4]))
				  {
				    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__);
				    if (! tree_invariant_p (captures[4])) return NULL_TREE;
				    tree res_op0;
				    {
				      tree ops1[2], res;
				      ops1[0] = captures[1];
				      ops1[1] = unshare_expr (captures[4]);
				      res = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				      res_op0 = res;
				    }
				    tree res_op1;
				    res_op1 = captures[4];
				    tree res;
				    res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
				    if (TREE_SIDE_EFFECTS (captures[2]))
				      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
				    return res;
				  }
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
			  {
			    {
/* #line 774 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      tree res = generic_simplify_170 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      tree res = generic_simplify_170 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 };
			      tree res = generic_simplify_170 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 774 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 };
			      tree res = generic_simplify_170 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1031 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type))
			  {
			    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__);
			    tree res_op0;
			    res_op0 = captures[0];
			    tree res_op1;
			    res_op1 = captures[1];
			    tree res;
			    res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		      }
		    }
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1038 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type))
			  {
			    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__);
			    tree res_op0;
			    res_op0 = captures[0];
			    tree res_op1;
			    res_op1 = captures[1];
			    tree res;
			    res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			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__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[1];
			tree res;
			res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
			return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			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__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[1];
			tree res;
			res = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
			return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (tree_negate_expr_p (op1))
    {
      {
/* #line 1250 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 1250 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (!FIXED_POINT_TYPE_P (type))
	  {
	    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__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res_op1;
	    {
	      tree ops1[1], res;
	      ops1[0] = captures[1];
	      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	      res_op1 = res;
	    }
	    tree res;
	    res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { o50, op1, o40, o51, o20 };
			  tree res = generic_simplify_61 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		      {
			{
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { o51, op1, o40, o50, o20 };
			  tree res = generic_simplify_61 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
		{
		  {
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, op1, o41, o20 };
		    tree res = generic_simplify_274 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
		{
		  {
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, op1, o40, o20 };
		    tree res = generic_simplify_274 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    {
/* #line 1771 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
/* #line 1771 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
			{
			  {
/* #line 1772 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1773 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (ptr_difference_const (captures[0], captures[1], &diff))
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1774, __FILE__, __LINE__);
				  tree res;
				  res =  build_int_cst_type (type, diff);
				  if (TREE_SIDE_EFFECTS (captures[0]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  return res;
				}
			  }
			}
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 1777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
/* #line 1777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
			{
			  {
/* #line 1778 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1779 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (ptr_difference_const (captures[0], captures[1], &diff))
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1780, __FILE__, __LINE__);
				  tree res;
				  res =  build_int_cst_type (type, diff);
				  if (TREE_SIDE_EFFECTS (captures[0]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  return res;
				}
			  }
			}
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
		{
		  {
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, o30, o41, op0 };
		    tree res = generic_simplify_61 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, o30, o40, op0 };
		    tree res = generic_simplify_61 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
	  {
	    {
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[5] ATTRIBUTE_UNUSED = { o30, op1, op1, o31, op0 };
	      tree res = generic_simplify_274 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
	  {
	    {
/* #line 1414 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[5] ATTRIBUTE_UNUSED = { o31, op1, op1, o30, op0 };
	      tree res = generic_simplify_274 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1562, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1589, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[2];
			tree res_op1;
			res_op1 = captures[1];
			tree res;
			res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[0]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1571 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
/* #line 1571 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2])))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1573, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[1];
			tree res_op1;
			res_op1 = captures[3];
			tree res;
			res = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[2]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1598 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
/* #line 1598 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1600, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[3];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
		tree res = generic_simplify_161 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	  tree res = generic_simplify_161 (loc, type, op0, op1, captures);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_116 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_116 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!TYPE_SATURATING (type))
		{
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1887, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[1];
		      tree res;
		      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      return res;
		    }
		}
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_95 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_95 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!TYPE_SATURATING (type))
		{
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1896, __FILE__, __LINE__);
		      tree res;
		      res = captures[1];
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      return res;
		    }
		}
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_147 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_147 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (CONSTANT_CLASS_P (o20))
	  {
	    if (CONSTANT_CLASS_P (op1))
	      {
		{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_129 (loc, type, op0, op1, captures, MINUS_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      if (integer_each_onep (op1))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
		    tree res = generic_simplify_43 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
		      {
			{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
			  tree res = generic_simplify_91 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
		      {
			{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
			  tree res = generic_simplify_91 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
		    tree res = generic_simplify_91 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
		    tree res = generic_simplify_91 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
		      {
			{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (!TYPE_SATURATING (type))
			    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
				{
/* #line 2015 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2023, __FILE__, __LINE__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res;
				      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
				      if (TREE_SIDE_EFFECTS (captures[2]))
					res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
				      return res;
				    }
				}
			    }
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case PLUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
			  tree res = generic_simplify_154 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		      {
			{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
			  tree res = generic_simplify_154 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if (integer_each_onep (op1))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_43 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_nop_convert (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case PLUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    if (CONSTANT_CLASS_P (o31))
	      {
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		      tree res = generic_simplify_14 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case MINUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    if (CONSTANT_CLASS_P (o31))
	      {
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		      tree res = generic_simplify_14 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
        default:;
        }
}
}
if (CONSTANT_CLASS_P (op0))
  {
    switch (TREE_CODE (op1))
      {
      case MINUS_EXPR:
        {
	  tree o30 = TREE_OPERAND (op1, 0);
	  tree o31 = TREE_OPERAND (op1, 1);
	  if (CONSTANT_CLASS_P (o30))
	    {
	      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		if (!TYPE_SATURATING (type))
		  {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
		      {
			{
/* #line 1969 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
/* #line 1970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    if (cst && !TREE_OVERFLOW (cst))
			      {
				if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
				if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1971, __FILE__, __LINE__);
				tree res_op0;
				res_op0 =  cst;
				tree res_op1;
				res_op1 = captures[2];
				tree res;
				res = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
				return res;
			      }
			}
		      }
		  }
	      }
	    }
          break;
        }
      default:;
      }
  }
if (integer_all_onesp (op0))
  {
    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!TYPE_SATURATING (type))
	{
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	    {
	      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1995, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res;
	      res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
	      return res;
	    }
	}
    }
  }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
		    tree res = generic_simplify_154 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
		    tree res = generic_simplify_154 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case POINTER_PLUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (!TYPE_SATURATING (type))
			    {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
				{
/* #line 2057 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
				    {
				      {
/* #line 2060 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2061, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[1], res;
					      ops2[0] = captures[1];
					      if (TREE_TYPE (ops2[0]) != utype)
						res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
					      else
					        res = ops2[0];
					      ops1[0] = res;
					    }
					    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					    res_op0 = res;
					  }
					  tree res;
					  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
					  if (TREE_SIDE_EFFECTS (captures[2]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					  return res;
				      }
				    }
				  else
				    {
/* #line 2062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
					{
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2070, __FILE__, __LINE__);
					  tree res_op0;
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[1];
					    if (TREE_TYPE (ops1[0]) != type)
					      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					    else
					      res = ops1[0];
					    res_op0 = res;
					  }
					  tree res;
					  res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
					  if (TREE_SIDE_EFFECTS (captures[2]))
					    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
					  return res;
					}
				    }
				}
			    }
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case PLUS_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
			    {
			      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
				tree res = generic_simplify_79 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
			    {
			      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
				tree res = generic_simplify_79 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
			    {
			      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
				tree res = generic_simplify_79 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
			    {
			      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
				tree res = generic_simplify_79 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case POINTER_PLUS_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
			    {
			      {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				if (!TYPE_SATURATING (type))
				  {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
				      {
/* #line 2109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
					  {
					    {
/* #line 2112 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2113, __FILE__, __LINE__);
						tree res_op0;
						{
						  tree ops1[2], res;
						  {
						    tree ops2[1], res;
						    ops2[0] = captures[1];
						    if (TREE_TYPE (ops2[0]) != utype)
						      res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
						    else
						      res = ops2[0];
						    ops1[0] = res;
						  }
						  {
						    tree ops2[1], res;
						    ops2[0] = captures[2];
						    if (TREE_TYPE (ops2[0]) != utype)
						      res = fold_build1_loc (loc, NOP_EXPR, utype, ops2[0]);
						    else
						      res = ops2[0];
						    ops1[1] = res;
						  }
						  res = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						  res_op0 = res;
						}
						tree res;
						res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
						if (TREE_SIDE_EFFECTS (captures[3]))
						  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
						return res;
					    }
					  }
					else
					  {
/* #line 2114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
					      {
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2124, __FILE__, __LINE__);
						tree res_op0;
						{
						  tree ops1[1], res;
						  ops1[0] = captures[1];
						  if (TREE_TYPE (ops1[0]) != type)
						    res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
						  else
						    res = ops1[0];
						  res_op0 = res;
						}
						tree res_op1;
						{
						  tree ops1[1], res;
						  ops1[0] = captures[2];
						  if (TREE_TYPE (ops1[0]) != type)
						    res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
						  else
						    res = ops1[0];
						  res_op1 = res;
						}
						tree res;
						res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
						if (TREE_SIDE_EFFECTS (captures[3]))
						  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
						return res;
					      }
					  }
				      }
				  }
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, MINUS_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, MINUS_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, MINUS_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_258 (loc, type, op0, op1, captures, MINUS_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MULT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_96 (loc, type, op0, op1, captures, MINUS_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
	      tree res = generic_simplify_96 (loc, type, op0, op1, captures, MINUS_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_309 (loc, type, op0, op1, captures, MINUS_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_309 (loc, type, op0, op1, captures, MINUS_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
if (integer_zerop (op0))
  {
    {
/* #line 2777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2777, __FILE__, __LINE__);
      tree res_op0;
      res_op0 = captures[0];
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      return res;
    }
  }
if (real_zerop (op0))
  {
    {
/* #line 2787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (fold_real_zero_addition_p (type, captures[0], 0))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2788, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[1];
	  tree res;
	  res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  }
  switch (TREE_CODE (op1))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case VEC_COND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      tree o42 = TREE_OPERAND (o30, 2);
	      if (integer_each_onep (o41))
		{
		  if (integer_zerop (o42))
		    {
		      {
/* #line 3119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 };
			tree res = generic_simplify_109 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case VEC_COND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	tree o32 = TREE_OPERAND (op1, 2);
	if (integer_each_onep (o31))
	  {
	    if (integer_zerop (o32))
	      {
		{
/* #line 3119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 };
		  tree res = generic_simplify_109 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case RDIV_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_160 (loc, type, op0, op1, captures, MINUS_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_BIT_IOR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res_op0;
	res_op0 = captures[0];
	tree res;
	res = non_lvalue_loc (loc, res_op0);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case NE_EXPR:
	        {
		  tree o50 = TREE_OPERAND (op1, 0);
		  tree o51 = TREE_OPERAND (op1, 1);
		  if (integer_zerop (o51))
		    {
		      {
/* #line 748 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			tree res = generic_simplify_218 (loc, type, op0, op1, captures, BIT_IOR_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
	if (integer_all_onesp (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case NE_EXPR:
	        {
		  tree o50 = TREE_OPERAND (op1, 0);
		  tree o51 = TREE_OPERAND (op1, 1);
		  if (integer_all_onesp (o51))
		    {
		      {
/* #line 757 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			tree res = generic_simplify_90 (loc, type, op0, op1, captures, BIT_IOR_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
				{
				  {
/* #line 780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
				{
				  {
/* #line 780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
				      tree res = generic_simplify_297 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
				      tree res = generic_simplify_297 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_181 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_181 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
			  {
			    {
/* #line 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op0 };
			      tree res = generic_simplify_134 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op0 };
			      tree res = generic_simplify_134 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op0 };
			      tree res = generic_simplify_134 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op0 };
			      tree res = generic_simplify_134 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_XOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_181 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_181 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op1 };
			      tree res = generic_simplify_184 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op1 };
			      tree res = generic_simplify_184 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o21, o30, op1 };
			      tree res = generic_simplify_184 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o21, o30, op1 };
			      tree res = generic_simplify_184 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		{
		  {
/* #line 809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o41 };
		    tree res = generic_simplify_190 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		{
		  {
/* #line 809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
		    tree res = generic_simplify_190 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		{
		  {
/* #line 809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o31 };
		    tree res = generic_simplify_190 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		{
		  {
/* #line 809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o31, op0, o30 };
		    tree res = generic_simplify_190 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
			      tree res = generic_simplify_73 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
			      tree res = generic_simplify_73 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_302 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_302 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_302 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_302 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
	      tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
	      tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
			tree res = generic_simplify_291 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o21, o20 };
			tree res = generic_simplify_291 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o50))
	        {
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      tree res = generic_simplify_171 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
			      tree res = generic_simplify_171 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
			tree res = generic_simplify_291 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o21, o20 };
			tree res = generic_simplify_291 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (integer_all_onesp (op1))
    {
      {
/* #line 910 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	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 res;
	res = captures[1];
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res;
	res = captures[0];
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		      {
			{
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			  tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
		      {
			{
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o30 };
			  tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    switch (TREE_CODE (o50))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
			    tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
		      tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
			  tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
			  tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 };
			  tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 };
			  tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o30))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_159 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o60, o30, o31 };
				    tree res = generic_simplify_305 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o60, o31, o30 };
				    tree res = generic_simplify_305 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o30 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o30, 0) && types_match (o80, o30)))
				{
				  {
/* #line 975 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o61, o30, o31 };
				    tree res = generic_simplify_305 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o31 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o31, 0) && types_match (o80, o31)))
				{
				  {
/* #line 975 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o61, o31, o30 };
				    tree res = generic_simplify_305 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
			if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
			  {
			    {
/* #line 985 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o30, o31, op0, o20 };
			      tree res = generic_simplify_186 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o30, o31, op0, o20 };
			      tree res = generic_simplify_235 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 };
		    tree res = generic_simplify_238 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 };
		    tree res = generic_simplify_238 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
		      tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_IOR_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
				    tree res = generic_simplify_17 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
				    tree res = generic_simplify_17 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_IOR_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o21, o40, o20 };
				    tree res = generic_simplify_17 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o21, o40, o20 };
				    tree res = generic_simplify_17 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o50))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
			      tree res = generic_simplify_186 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_197 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
		    tree res = generic_simplify_197 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_243 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o21, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o50))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
			      tree res = generic_simplify_235 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_243 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
	      tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 };
	      tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_IOR_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_313 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	  tree res = generic_simplify_313 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
	  if (res) return res;
	}
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o50))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o60 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o61 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o60 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o61 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      switch (TREE_CODE (o51))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o70 = TREE_OPERAND (o51, 0);
		    if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o21, op0, o20 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o20, op0, o21 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o21, op0, o20 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
		      {
			{
/* #line 1409 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o20, op0, o21 };
			  tree res = generic_simplify_40 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_AND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o30))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o31))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (o31, 0);
	      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (CONSTANT_CLASS_P (o21))
	  {
	    if (CONSTANT_CLASS_P (op1))
	      {
		{
/* #line 1305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_209 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_145 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case UNORDERED_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case UNORDERED_EXPR:
	        {
		  tree o50 = TREE_OPERAND (op1, 0);
		  tree o51 = TREE_OPERAND (op1, 1);
		  if ((o51 == o50 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o50, 0) && types_match (o51, o50)))
		    {
		      {
/* #line 3659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
/* #line 3659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (types_match (captures[0], captures[1]))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3660, __FILE__, __LINE__);
			    tree res_op0;
			    res_op0 = captures[0];
			    tree res_op1;
			    res_op1 = captures[1];
			    tree res;
			    res = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		      }
		    }
		  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		    {
		      {
/* #line 3667 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 };
			tree res = generic_simplify_303 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
		  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		    {
		      {
/* #line 3667 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
			tree res = generic_simplify_303 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
	switch (TREE_CODE (op1))
	  {
	  case UNORDERED_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3667 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			tree res = generic_simplify_64 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      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 3667 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 };
			tree res = generic_simplify_64 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case NE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LE_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case EQ_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LE_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, GE_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case NE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, GE_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case NE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3678 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_200 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_logical_inverted_value (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (tree_truth_valued_p (op1))
	    {
	      {
/* #line 1354 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		tree res = generic_simplify_229 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		if (res) return res;
	      }
	    }
        }
}
}
if (tree_truth_valued_p (op0))
  {
    {
      tree op1_pops[1];
      if (tree_logical_inverted_value (op1, op1_pops))
        {
	  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		tree res = generic_simplify_229 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
		if (res) return res;
	      }
	    }
}
    }
  }
  return NULL_TREE;
}

static tree
generic_simplify_BIT_XOR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res_op0;
	res_op0 = captures[0];
	tree res;
	res = non_lvalue_loc (loc, res_op0);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
				{
				  {
/* #line 780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
				{
				  {
/* #line 780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
				    tree res = generic_simplify_176 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
				      tree res = generic_simplify_297 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
				      tree res = generic_simplify_297 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
		      {
			{
/* #line 799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			  tree res = generic_simplify_185 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
		      {
			{
/* #line 799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o30 };
			  tree res = generic_simplify_185 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
		{
		  switch (TREE_CODE (o41))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o60 = TREE_OPERAND (o41, 0);
			{
/* #line 799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o60 };
			  tree res = generic_simplify_185 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
		      {
			{
/* #line 799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o50 };
			  tree res = generic_simplify_185 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		      {
			{
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			  tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
		      {
			{
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o30 };
			  tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  switch (TREE_CODE (o60))
			    {
			    case BIT_AND_EXPR:
			      {
				tree o70 = TREE_OPERAND (o60, 0);
				tree o71 = TREE_OPERAND (o60, 1);
				switch (TREE_CODE (o71))
				  {
				  case INTEGER_CST:
				    {
				      {
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 };
					tree res = generic_simplify_58 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
					if (res) return res;
				      }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o61))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 };
				  tree res = generic_simplify_58 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				  if (res) return res;
				}
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
		      {
			{
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
			  tree res = generic_simplify_211 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
		      {
			{
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
			  tree res = generic_simplify_211 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
			  tree res = generic_simplify_211 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		      {
			{
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
			  tree res = generic_simplify_211 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_220 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 933 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	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 res;
	res =  build_zero_cst (type);
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    }
  if (integer_all_onesp (op1))
    {
      {
/* #line 938 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	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__);
	tree res_op0;
	res_op0 = captures[0];
	tree res;
	res = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
	if (TREE_SIDE_EFFECTS (captures[1]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
			  {
			    {
/* #line 980 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 980 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
				{
				  {
/* #line 1070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    tree res = generic_simplify_254 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    tree res = generic_simplify_254 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o21, op1 };
			      tree res = generic_simplify_234 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			      tree res = generic_simplify_182 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o40, o20, op1 };
			      tree res = generic_simplify_234 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_240 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_241 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
				{
				  {
/* #line 1070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    tree res = generic_simplify_254 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    tree res = generic_simplify_254 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
	  {
	    {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
	      tree res = generic_simplify_211 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
	  {
	    {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 };
	      tree res = generic_simplify_211 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      switch (TREE_CODE (o50))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o20, o21, op0 };
			      tree res = generic_simplify_234 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 990 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o20, o21, op0 };
			      tree res = generic_simplify_234 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_241 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_243 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
	  {
	    {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
	      tree res = generic_simplify_286 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
	  {
	    {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 };
	      tree res = generic_simplify_286 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_240 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_243 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  tree o61 = TREE_OPERAND (o50, 1);
			  switch (TREE_CODE (o61))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 };
				  tree res = generic_simplify_58 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
				  if (res) return res;
				}
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    switch (TREE_CODE (o51))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 };
			    tree res = generic_simplify_58 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
		    tree res = generic_simplify_211 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
	  {
	    {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
	      tree res = generic_simplify_211 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
	  {
	    {
/* #line 1098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 };
	      tree res = generic_simplify_211 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  {
/* #line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
			    tree res = generic_simplify_82 (loc, type, op0, op1, captures);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    {
/* #line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
		      tree res = generic_simplify_82 (loc, type, op0, op1, captures);
		      if (res) return res;
		    }
		    break;
		  }
		case INTEGER_CST:
		  {
		    {
/* #line 1111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 };
		      tree res = generic_simplify_146 (loc, type, op0, op1, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    {
/* #line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
		      tree res = generic_simplify_82 (loc, type, op0, op1, captures);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_82 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
	  case INTEGER_CST:
	    {
	      {
/* #line 1111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_146 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o21, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_AND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
		      {
			{
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
			  tree res = generic_simplify_286 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
		      {
			{
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 };
			  tree res = generic_simplify_286 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_XOR_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		      {
			{
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
			  tree res = generic_simplify_286 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
			  tree res = generic_simplify_286 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
		{
		  {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
		    tree res = generic_simplify_286 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
	  {
	    {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
	      tree res = generic_simplify_286 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
	  {
	    {
/* #line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 };
	      tree res = generic_simplify_286 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_XOR_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o71 };
				tree res = generic_simplify_168 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
			    {
			      {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o70 };
				tree res = generic_simplify_168 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
			    {
			      {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o71 };
				tree res = generic_simplify_168 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
			    {
			      {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o70 };
				tree res = generic_simplify_168 (loc, type, op0, op1, captures);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o61 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o60 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o61 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o60 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_313 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	  tree res = generic_simplify_313 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
	  if (res) return res;
	}
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o50))
	        {
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o61 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o60 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o61 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
		      {
			{
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o60 };
			  tree res = generic_simplify_168 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_168 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_168 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_168 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_168 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if (CONSTANT_CLASS_P (o21))
	  {
	    if (CONSTANT_CLASS_P (op1))
	      {
		{
/* #line 1305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_209 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_logical_inverted_value (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (tree_truth_valued_p (op1))
	    {
	      {
/* #line 1354 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		tree res = generic_simplify_229 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
		if (res) return res;
	      }
	    }
        }
}
}
{
  tree op0_pops[1];
  if (tree_nop_convert (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case BIT_NOT_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    {
/* #line 1403 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, op1 };
	      tree res = generic_simplify_260 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	    break;
	  }
        default:;
        }
}
}
if (tree_truth_valued_p (op0))
  {
    {
      tree op1_pops[1];
      if (tree_logical_inverted_value (op1, op1_pops))
        {
	  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		tree res = generic_simplify_229 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
		if (res) return res;
	      }
	    }
}
    }
  }
  {
    tree op1_pops[1];
    if (tree_nop_convert (op1, op1_pops))
      {
	tree o30 = op1_pops[0];
	switch (TREE_CODE (o30))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      {
/* #line 1403 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
		tree res = generic_simplify_260 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
}
  }
  switch (TREE_CODE (op0))
    {
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_145 (loc, type, op0, op1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case UNORDERED_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case ORDERED_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case UNLT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case UNLE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case UNGT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case UNGE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case UNEQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case LTGT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_truep (op1))
	  {
	    {
/* #line 3180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_114 (loc, type, op0, op1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_POINTER_DIFF_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 140 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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__);
	tree res_op0;
	res_op0 = captures[0];
	tree res;
	res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, op0, 0))
    {
      {
/* #line 166 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op0 };
	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 res;
	res =  build_zero_cst (type);
	if (TREE_SIDE_EFFECTS (captures[1]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    {
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1785 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (ptr_difference_const (captures[1], captures[3], &diff))
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1787, __FILE__, __LINE__);
				  tree res;
				  res =  build_int_cst_type (type, diff);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  if (TREE_SIDE_EFFECTS (captures[3]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
				  return res;
				}
			  }
			}
		    }
		    break;
		  }
	        default:;
	        }
	      {
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1785 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (ptr_difference_const (captures[1], captures[3], &diff))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1787, __FILE__, __LINE__);
			    tree res;
			    res =  build_int_cst_type (type, diff);
			    if (TREE_SIDE_EFFECTS (captures[1]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			    if (TREE_SIDE_EFFECTS (captures[2]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			    return res;
			  }
		    }
		  }
	      }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1793 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (ptr_difference_const (captures[1], captures[3], &diff))
				{
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1794, __FILE__, __LINE__);
				  tree res;
				  res =  build_int_cst_type (type, diff);
				  if (TREE_SIDE_EFFECTS (captures[1]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
				  if (TREE_SIDE_EFFECTS (captures[3]))
				    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
				  return res;
				}
			  }
			}
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1793 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (ptr_difference_const (captures[1], captures[3], &diff))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1794, __FILE__, __LINE__);
			    tree res;
			    res =  build_int_cst_type (type, diff);
			    if (TREE_SIDE_EFFECTS (captures[1]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			    if (TREE_SIDE_EFFECTS (captures[2]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			    return res;
			  }
		    }
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      {
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, o30 };
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1785 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (ptr_difference_const (captures[1], captures[3], &diff))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1787, __FILE__, __LINE__);
			    tree res;
			    res =  build_int_cst_type (type, diff);
			    if (TREE_SIDE_EFFECTS (captures[0]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			    if (TREE_SIDE_EFFECTS (captures[3]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
			    return res;
			  }
		    }
		  }
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, op1 };
/* #line 1783 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1785 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (ptr_difference_const (captures[1], captures[3], &diff))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1787, __FILE__, __LINE__);
		      tree res;
		      res =  build_int_cst_type (type, diff);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      if (TREE_SIDE_EFFECTS (captures[2]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		      return res;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case ADDR_EXPR:
	    {
	      {
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, o30 };
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1793 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (ptr_difference_const (captures[1], captures[3], &diff))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1794, __FILE__, __LINE__);
			    tree res;
			    res =  build_int_cst_type (type, diff);
			    if (TREE_SIDE_EFFECTS (captures[0]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			    if (TREE_SIDE_EFFECTS (captures[3]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
			    return res;
			  }
		    }
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case ADDR_EXPR:
      {
	{
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, op1 };
/* #line 1790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 1792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 poly_int64 diff;
/* #line 1793 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (ptr_difference_const (captures[1], captures[3], &diff))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1794, __FILE__, __LINE__);
		      tree res;
		      res =  build_int_cst_type (type, diff);
		      if (TREE_SIDE_EFFECTS (captures[0]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		      if (TREE_SIDE_EFFECTS (captures[2]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		      return res;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case POINTER_PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!TYPE_SATURATING (type))
		{
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
		    {
		      {
/* #line 2028 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2032, __FILE__, __LINE__);
			  tree res_op0;
			  {
			    tree ops1[1], res;
			    ops1[0] = captures[1];
			    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, ops1[0]);
			    res_op0 = res;
			  }
			  tree res;
			  res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			  if (TREE_SIDE_EFFECTS (captures[2]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			  return res;
		      }
		    }
		}
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case POINTER_PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
	  {
	    {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!TYPE_SATURATING (type))
		{
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
		    {
		      {
/* #line 2075 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2079, __FILE__, __LINE__);
			  tree res_op0;
			  {
			    tree ops1[1], res;
			    {
			      tree ops2[1], res;
			      ops2[0] = captures[1];
			      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, ops2[0]);
			      ops1[0] = res;
			    }
			    if (TREE_TYPE (ops1[0]) != type)
			      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
			    else
			      res = ops1[0];
			    res_op0 = res;
			  }
			  tree res;
			  res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
			  if (TREE_SIDE_EFFECTS (captures[2]))
			    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			  return res;
		      }
		    }
		}
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case POINTER_PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
/* #line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (!TYPE_SATURATING (type))
		      {
/* #line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
			  {
			    {
/* #line 2129 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2133, __FILE__, __LINE__);
				tree res_op0;
				{
				  tree ops1[1], res;
				  {
				    tree ops2[1], res;
				    ops2[0] = captures[1];
				    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, ops2[0]);
				    ops1[0] = res;
				  }
				  if (TREE_TYPE (ops1[0]) != type)
				    res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				  else
				    res = ops1[0];
				  res_op0 = res;
				}
				tree res_op1;
				{
				  tree ops1[1], res;
				  {
				    tree ops2[1], res;
				    ops2[0] = captures[2];
				    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, ops2[0]);
				    ops1[0] = res;
				  }
				  if (TREE_TYPE (ops1[0]) != type)
				    res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				  else
				    res = ops1[0];
				  res_op1 = res;
				}
				tree res;
				res = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
				if (TREE_SIDE_EFFECTS (captures[3]))
				  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), res);
				return res;
			    }
			  }
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
if (integer_zerop (op0))
  {
    {
/* #line 2780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2780, __FILE__, __LINE__);
      tree res_op0;
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (TREE_TYPE (ops1[0]) != type)
	  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
	else
	  res = ops1[0];
	res_op0 = res;
      }
      tree res;
      res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
      return res;
    }
  }
  return NULL_TREE;
}

static tree
generic_simplify_MULT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op1))
    {
    case VECTOR_CST:
      {
	{
/* #line 202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (initializer_each_zero_or_onep (captures[1]) && !HONOR_SNANS (type) && !HONOR_SIGNED_ZEROS (type))
	    {
	      {
/* #line 205 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree itype = FLOAT_TYPE_P (type) ? unsigned_type_for (type) : type;
/* #line 206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)))
		    {
		      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__);
		      tree res_op0;
		      {
			tree ops1[2], res;
			{
			  tree ops2[1], res;
			  ops2[0] = captures[0];
			  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, itype, ops2[0]);
			  ops1[0] = res;
			}
			{
			  tree ops2[2], res;
			  ops2[0] = captures[1];
			  ops2[1] =  build_zero_cst (type);
			  res = fold_build2_loc (loc, NE_EXPR, itype, ops2[0], ops2[1]);
			  ops1[1] = res;
			}
			res = fold_build2_loc (loc, BIT_AND_EXPR, itype, ops1[0], ops1[1]);
			res_op0 = res;
		      }
		      tree res;
		      res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
		      return res;
		    }
	      }
	    }
	}
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_BUILT_IN_COPYSIGNF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGN:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGN);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNL);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF16:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF16);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32X:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32X);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64X:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64X);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128X:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128X);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	case CFN_COPYSIGN:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		      tree res = generic_simplify_32 (loc, type, op0, op1, captures, CFN_COPYSIGN);
		      if (res) return res;
		    }
		  }
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
if (integer_zerop (op1))
  {
    {
/* #line 170 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      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 res;
      res = captures[1];
      if (TREE_SIDE_EFFECTS (captures[0]))
	res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
      return res;
    }
  }
if (real_zerop (op1))
  {
    {
/* #line 178 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 178 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
	{
	  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 res;
	  res = captures[1];
	  if (TREE_SIDE_EFFECTS (captures[0]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	  return res;
	}
    }
  }
if (real_onep (op1))
  {
    {
/* #line 185 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 185 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type)))
	{
	  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	  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 res_op0;
	  res_op0 = captures[0];
	  tree res;
	  res = non_lvalue_loc (loc, res_op0);
	  return res;
	}
    }
  }
if (real_minus_onep (op1))
  {
    {
/* #line 193 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 193 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type)))
	{
	  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	  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__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res;
	  res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
	  return res;
	}
    }
  }
  switch (TREE_CODE (op0))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_COPYSIGNF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGN);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNL);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF16:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF16);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF16);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32X);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32X);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64X);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64X);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128X);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128X);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_COPYSIGN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o21 };
		      tree res = generic_simplify_150 (loc, type, op0, op1, captures, CFN_COPYSIGN);
		      if (res) return res;
		    }
		  }
		switch (TREE_CODE (o21))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o40 = TREE_OPERAND (o21, 0);
		      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
			    tree res = generic_simplify_272 (loc, type, op0, op1, captures, CFN_COPYSIGN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_BUILT_IN_COPYSIGNF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGN:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF16:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF16);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32X:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32X);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64X:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64X);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128X:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128X);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_COPYSIGN:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    if (real_onep (o30))
	      {
		switch (TREE_CODE (o31))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o31, 0);
		      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
			{
			  {
/* #line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    tree res = generic_simplify_282 (loc, type, op0, op1, captures, CFN_COPYSIGN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
if (integer_onep (op1))
  {
    {
/* #line 270 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      tree res = generic_simplify_34 (loc, type, op0, op1, captures, MULT_EXPR);
      if (res) return res;
    }
  }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      {
/* #line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (!overflow || TYPE_OVERFLOW_WRAPS (type))
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  wide_int_to_tree (type, mul);
			      tree res;
			      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			      return res;
			    }
		      }
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
		    {
		      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__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      {
			tree ops1[1], res;
			ops1[0] = captures[1];
			res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			res_op1 = res;
		      }
		      tree res;
		      res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		}
	      }
	  }
        break;
      }
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	  {
	    {
/* #line 626 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
	      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__);
	      if (! tree_invariant_p (captures[1])) return NULL_TREE;
	      tree res_op0;
	      res_op0 = unshare_expr (captures[1]);
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res;
	      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	  }
        break;
      }
    case ABSU_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	  {
	    {
/* #line 631 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20 };
	      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__);
	      tree res_op0;
	      {
		tree ops1[1], res;
		ops1[0] = captures[1];
		if (TREE_TYPE (ops1[0]) != type)
		  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
		else
		  res = ops1[0];
		captures[2] = res;
	      }
	      res_op0 = unshare_expr (captures[2]);
	      tree res_op1;
	      res_op1 = captures[2];
	      tree res;
	      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	  }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_COPYSIGNF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGN);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF16:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF16);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF32X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF32X);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF64X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF64X);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_COPYSIGNF128X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_BUILT_IN_COPYSIGNF128X);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COPYSIGN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_143 (loc, type, op0, op1, captures, CFN_COPYSIGN);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if (integer_onep (o40))
		{
		  {
/* #line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o41 };
		    tree res = generic_simplify_280 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_onep (o30))
		{
		  {
/* #line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, o31 };
		    tree res = generic_simplify_280 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case NEGATE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if (tree_negate_expr_p (o50))
		      {
			{
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
			  tree res = generic_simplify_151 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	    if (tree_negate_expr_p (op1))
	      {
		{
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 };
		  tree res = generic_simplify_151 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	      }
	      break;
	    }
	  case GT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 1422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		tree res = generic_simplify_46 (loc, type, op0, op1, captures, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case LT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 1422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		tree res = generic_simplify_46 (loc, type, op0, op1, captures, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case GE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 1422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		tree res = generic_simplify_46 (loc, type, op0, op1, captures, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      {
/* #line 1422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
		tree res = generic_simplify_46 (loc, type, op0, op1, captures, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case EXACT_DIV_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
		      {
			{
/* #line 2735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
			  tree res = generic_simplify_172 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
		{
		  {
/* #line 2735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
		    tree res = generic_simplify_172 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o40))
		      {
		      case EXACT_DIV_EXPR:
		        {
			  tree o50 = TREE_OPERAND (o40, 0);
			  tree o51 = TREE_OPERAND (o40, 1);
			  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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o31, o51 };
					    tree res = generic_simplify_259 (loc, type, op0, op1, captures, PLUS_EXPR);
					    if (res) return res;
					  }
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case EXACT_DIV_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    tree o41 = TREE_OPERAND (o30, 1);
		    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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o31, o41 };
				      tree res = generic_simplify_259 (loc, type, op0, op1, captures, PLUS_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o40))
		      {
		      case EXACT_DIV_EXPR:
		        {
			  tree o50 = TREE_OPERAND (o40, 0);
			  tree o51 = TREE_OPERAND (o40, 1);
			  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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o31, o51 };
					    tree res = generic_simplify_259 (loc, type, op0, op1, captures, MINUS_EXPR);
					    if (res) return res;
					  }
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case EXACT_DIV_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    tree o41 = TREE_OPERAND (o30, 1);
		    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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o31, o41 };
				      tree res = generic_simplify_259 (loc, type, op0, op1, captures, MINUS_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
      if (tree_negate_expr_p (o20))
	{
	  switch (TREE_CODE (op1))
	    {
	    CASE_CONVERT:
	      {
		tree o40 = TREE_OPERAND (op1, 0);
		switch (TREE_CODE (o40))
		  {
		  case NEGATE_EXPR:
		    {
		      tree o50 = TREE_OPERAND (o40, 0);
		      {
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o50, o20 };
			tree res = generic_simplify_151 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		      break;
		    }
	          default:;
	          }
	        break;
	      }
	    case NEGATE_EXPR:
	      {
		tree o40 = TREE_OPERAND (op1, 0);
		{
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
		  tree res = generic_simplify_151 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	        break;
	      }
	    default:;
	    }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case LSHIFT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if (integer_onep (o30))
	  {
	    {
/* #line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
	      tree res = generic_simplify_280 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case LSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_onep (o20))
	  {
	    {
/* #line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
	      tree res = generic_simplify_280 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
/* #line 723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (flag_associative_math && single_use (captures[0]))
			{
			  {
/* #line 725 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
/* #line 727 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (tem)
				{
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 =  tem;
				  tree res_op1;
				  res_op1 = captures[2];
				  tree res;
				  res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
				  return res;
				}
			  }
			}
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      if (tree_negate_expr_p (o40))
		{
		  {
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		    tree res = generic_simplify_151 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
      if (tree_negate_expr_p (op1))
	{
	  {
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_151 (loc, type, op0, op1, captures);
	    if (res) return res;
	  }
        }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 2735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
		    tree res = generic_simplify_172 (loc, type, op0, op1, captures);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
	  {
	    {
/* #line 2735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
	      tree res = generic_simplify_172 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o30))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    tree o41 = TREE_OPERAND (o30, 1);
		    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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o21, o41 };
				      tree res = generic_simplify_259 (loc, type, op0, op1, captures, PLUS_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case EXACT_DIV_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o21, o31 };
				tree res = generic_simplify_259 (loc, type, op0, op1, captures, PLUS_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o30))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    tree o41 = TREE_OPERAND (o30, 1);
		    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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o21, o41 };
				      tree res = generic_simplify_259 (loc, type, op0, op1, captures, MINUS_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case EXACT_DIV_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      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 2741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o21, o31 };
				tree res = generic_simplify_259 (loc, type, op0, op1, captures, MINUS_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
if (tree_negate_expr_p (op0))
  {
    switch (TREE_CODE (op1))
      {
      CASE_CONVERT:
        {
	  tree o30 = TREE_OPERAND (op1, 0);
	  switch (TREE_CODE (o30))
	    {
	    case NEGATE_EXPR:
	      {
		tree o40 = TREE_OPERAND (o30, 0);
		{
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { o40, op0 };
		  tree res = generic_simplify_151 (loc, type, op0, op1, captures);
		  if (res) return res;
		}
	        break;
	      }
	    default:;
	    }
          break;
        }
      case NEGATE_EXPR:
        {
	  tree o30 = TREE_OPERAND (op1, 0);
	  {
/* #line 1223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
	    tree res = generic_simplify_151 (loc, type, op0, op1, captures);
	    if (res) return res;
	  }
          break;
        }
      default:;
      }
  }
  if (integer_minus_onep (op1))
    {
      {
/* #line 2793 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2793, __FILE__, __LINE__);
	tree res_op0;
	res_op0 = captures[0];
	tree res;
	res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 2799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		tree res = generic_simplify_137 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MULT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o31))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 2799 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
		tree res = generic_simplify_137 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF);
		  if (res) return res;
		}
	      }
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT);
		  if (res) return res;
		}
	      }
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL);
		  if (res) return res;
		}
	      }
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF16:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF16);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF32:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF32);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF64:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF64);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF128:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF128);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF32X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF32X);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF64X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF64X);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTF128X:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF128X);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
	      {
		{
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		  tree res = generic_simplify_80 (loc, type, op0, op1, captures, CFN_SQRT);
		  if (res) return res;
		}
	      }
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_SQRT, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_CBRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_CBRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_CBRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_CBRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_CBRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_CBRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4281, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXPF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXPF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXPL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXPL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_EXP:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_EXP:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP2F:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP2F:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP2:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP2:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP2L:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP2L:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_EXP2:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_EXP2:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP10F:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP10F:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP10:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP10:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXP10L:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_EXP10L:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_EXP10:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_EXP10:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW10F:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POW10F:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW10:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POW10:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POW:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW10L:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POW10L:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (flag_unsafe_math_optimizations)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4287, __FILE__, __LINE__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[3];
			      res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res;
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
			    if (!res)
			      return NULL_TREE;
			    return res;
			  }
		      }
		      break;
		    }
		  case CFN_BUILT_IN_POWL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      tree o41 = CALL_EXPR_ARG (op1, 1);
		      switch (TREE_CODE (o40))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (o20))
	      {
	      case REAL_CST:
	        {
		  switch (TREE_CODE (op1))
		    {
		    case CALL_EXPR:
		      switch (get_call_combined_fn (op1))
		        {
			case CFN_BUILT_IN_EXPF:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_EXP2F:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_EXP10F:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_POW10F:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (o20))
	      {
	      case REAL_CST:
	        {
		  switch (TREE_CODE (op1))
		    {
		    case CALL_EXPR:
		      switch (get_call_combined_fn (op1))
		        {
			case CFN_BUILT_IN_EXP:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_EXP2:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_EXP10:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_POW10:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (o20))
	      {
	      case REAL_CST:
	        {
		  switch (TREE_CODE (op1))
		    {
		    case CALL_EXPR:
		      switch (get_call_combined_fn (op1))
		        {
			case CFN_BUILT_IN_EXPL:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_EXP2L:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_EXP10L:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_BUILT_IN_POW10L:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_POW:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (o20))
	      {
	      case REAL_CST:
	        {
		  switch (TREE_CODE (op1))
		    {
		    case CALL_EXPR:
		      switch (get_call_combined_fn (op1))
		        {
			case CFN_EXP:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_EXP2:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    break;
			  }
			case CFN_EXP10:
			  {
			    tree o50 = CALL_EXPR_ARG (op1, 0);
			    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations)
				{
/* #line 4423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
				    {
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4425, __FILE__, __LINE__);
				      tree res_op0;
				      {
					tree ops1[2], res;
					{
					  tree ops2[2], res;
					  {
					    tree ops3[1], res;
					    ops3[0] = captures[1];
					    {
					      res = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (ops3[0]), 1, ops3[0]);
					      if (!res)
					        return NULL_TREE;
					    }
					    ops2[0] = res;
					  }
					  ops2[1] = captures[2];
					  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					  ops1[0] = res;
					}
					ops1[1] = captures[4];
					res = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					res_op0 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_POW);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_TANF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_COSF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_TAN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_COS:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_TANL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_COSL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_TAN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_COS:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_TAN, CFN_COS, CFN_SIN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_COSF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_TANF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_COS:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_TAN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_COSL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_TANL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_COS:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_TAN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
			    tree res = generic_simplify_11 (loc, type, op0, op1, captures, CFN_TAN, CFN_COS, CFN_SIN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_BUILT_IN_POWF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
			if (res) return res;
		      }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
			if (res) return res;
		      }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
			if (res) return res;
		      }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	case CFN_POW:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			tree res = generic_simplify_266 (loc, type, op0, op1, captures, CFN_POW);
			if (res) return res;
		      }
		      break;
		    }
	          default:;
	          }
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_POWF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POWF:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
			    tree res = generic_simplify_103 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
			    if (res) return res;
			  }
		        }
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
			    tree res = generic_simplify_155 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POW:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
			    tree res = generic_simplify_103 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
			    if (res) return res;
			  }
		        }
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
			    tree res = generic_simplify_155 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POWL:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
			    tree res = generic_simplify_103 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
			    if (res) return res;
			  }
		        }
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
			    tree res = generic_simplify_155 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_POW:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_POW:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
			    tree res = generic_simplify_103 (loc, type, op0, op1, captures, CFN_POW);
			    if (res) return res;
			  }
		        }
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
			    tree res = generic_simplify_155 (loc, type, op0, op1, captures, CFN_POW);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWIF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POWIF:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			      {
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4617, __FILE__, __LINE__);
				tree res_op0;
				{
				  tree ops1[2], res;
				  ops1[0] = captures[1];
				  ops1[1] = captures[4];
				  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				  res_op0 = res;
				}
				tree res_op1;
				res_op1 = captures[2];
				tree res;
				res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIF, type, 2, res_op0, res_op1);
				if (!res)
				  return NULL_TREE;
				return res;
			      }
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWI:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POWI:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			      {
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4617, __FILE__, __LINE__);
				tree res_op0;
				{
				  tree ops1[2], res;
				  ops1[0] = captures[1];
				  ops1[1] = captures[4];
				  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				  res_op0 = res;
				}
				tree res_op1;
				res_op1 = captures[2];
				tree res;
				res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWI, type, 2, res_op0, res_op1);
				if (!res)
				  return NULL_TREE;
				return res;
			      }
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWIL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_POWIL:
		    {
		      tree o50 = CALL_EXPR_ARG (op1, 0);
		      tree o51 = CALL_EXPR_ARG (op1, 1);
		      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			      {
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4617, __FILE__, __LINE__);
				tree res_op0;
				{
				  tree ops1[2], res;
				  ops1[0] = captures[1];
				  ops1[1] = captures[4];
				  res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				  res_op0 = res;
				}
				tree res_op1;
				res_op1 = captures[2];
				tree res;
				res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIL, type, 2, res_op0, res_op1);
				if (!res)
				  return NULL_TREE;
				return res;
			      }
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_TRUNC_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op1))
    {
    case LSHIFT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if (integer_onep (o30))
	  {
	    {
/* #line 278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
/* #line 278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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)))
		{
		  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__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  res_op1 = captures[2];
		  tree res;
		  res = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	    }
	  }
        break;
      }
    default:;
    }
if (integer_onep (op1))
  {
    {
/* #line 270 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      tree res = generic_simplify_34 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
      if (res) return res;
    }
  }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_28 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_119 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_265 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case ABS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_204 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
			    tree res = generic_simplify_253 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_253 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 570 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
		    {
		      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		      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__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 =  wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (captures[1])), false, TYPE_PRECISION (type)));
		      tree res;
		      res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
		      return res;
		    }
		}
	      }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, TRUNC_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_CEIL_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_34 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_28 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_119 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_265 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case ABS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
			    tree res = generic_simplify_253 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_253 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, CEIL_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_FLOOR_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_34 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_28 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_119 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_265 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case ABS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  {
/* #line 324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_UNSIGNED (type))
      {
	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__);
	tree res_op0;
	res_op0 = captures[0];
	tree res_op1;
	res_op1 = captures[1];
	tree res;
	res = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, res_op0, res_op1);
	return res;
      }
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
			    tree res = generic_simplify_253 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_253 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, FLOOR_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_ROUND_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_34 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_28 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_119 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_265 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case ABS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
			    tree res = generic_simplify_253 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_253 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, ROUND_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_EXACT_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_34 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_28 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_119 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_265 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case ABS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_52 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_180 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_204 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
			    tree res = generic_simplify_253 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 447 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_253 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_156 (loc, type, op0, op1, captures, EXACT_DIV_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_RDIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 364 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
	  {
	    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 res;
	    res =  build_one_cst (type);
	    if (TREE_SIDE_EFFECTS (captures[0]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op1))
    {
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 373 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_56 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 373 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_56 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case ABS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		      {
			{
/* #line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			  tree res = generic_simplify_205 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case ABS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
		      {
			{
/* #line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o30 };
			  tree res = generic_simplify_205 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case ABS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_205 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_205 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  if (real_onep (op1))
    {
      {
/* #line 395 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 395 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (!HONOR_SNANS (type))
	  {
	    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	    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 res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = non_lvalue_loc (loc, res_op0);
	    return res;
	  }
      }
    }
  if (real_minus_onep (op1))
    {
      {
/* #line 401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (!HONOR_SNANS (type))
	  {
	    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	    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__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	{
/* #line 404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
/* #line 404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (flag_reciprocal_math)
	    {
	      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__);
	      tree res_op0;
	      res_op0 = captures[1];
	      tree res_op1;
	      {
		tree ops1[2], res;
		ops1[0] = captures[2];
		ops1[1] = captures[3];
		res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op1 = res;
	      }
	      tree res;
	      res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MULT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o31))
	  {
	  case REAL_CST:
	    {
	      {
/* #line 404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
/* #line 404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		if (flag_reciprocal_math)
		  {
		    {
/* #line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
/* #line 415 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (tem)
			  {
			    if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
			    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__);
			    tree res_op0;
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[0];
			      ops1[1] =  tem;
			      res = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      res_op0 = res;
			    }
			    tree res_op1;
			    res_op1 = captures[2];
			    tree res;
			    res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		    }
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case RDIV_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	{
/* #line 404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
/* #line 404 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (flag_reciprocal_math)
	    {
	      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__);
	      tree res_op0;
	      {
		tree ops1[2], res;
		ops1[0] = captures[0];
		ops1[1] = captures[2];
		res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		res_op0 = res;
	      }
	      tree res_op1;
	      res_op1 = captures[3];
	      tree res;
	      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	{
/* #line 426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	  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__);
	  tree res_op0;
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[0];
	    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	    res_op0 = res;
	  }
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res;
	  res = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
	  return res;
	}
        break;
      }
    case REAL_CST:
      {
	{
/* #line 463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (optimize)
	    {
/* #line 464 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_reciprocal_math && !real_zerop (captures[1]))
		{
		  {
/* #line 466 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (tem)
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  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__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 =  tem;
			  tree res;
			  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			  return res;
			}
		  }
		}
	      else
		{
/* #line 470 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (REAL_CST != COMPLEX_CST)
		    {
		      {
/* #line 471 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree inverse = exact_inverse (type, captures[1]);
/* #line 472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (inverse)
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  inverse;
			      tree res;
			      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			      return res;
			    }
		      }
		    }
		}
	    }
	}
        break;
      }
    case COMPLEX_CST:
      {
	{
/* #line 463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (optimize)
	    {
/* #line 464 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_reciprocal_math && !real_zerop (captures[1]))
		{
		  {
/* #line 466 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (tem)
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  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__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 =  tem;
			  tree res;
			  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			  return res;
			}
		  }
		}
	      else
		{
/* #line 470 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (COMPLEX_CST != COMPLEX_CST)
		    {
		      {
/* #line 471 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree inverse = exact_inverse (type, captures[1]);
/* #line 472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (inverse)
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  inverse;
			      tree res;
			      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			      return res;
			    }
		      }
		    }
		}
	    }
	}
        break;
      }
    case VECTOR_CST:
      {
	{
/* #line 463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (optimize)
	    {
/* #line 464 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_reciprocal_math && !real_zerop (captures[1]))
		{
		  {
/* #line 466 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (tem)
			{
			  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			  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__);
			  tree res_op0;
			  res_op0 = captures[0];
			  tree res_op1;
			  res_op1 =  tem;
			  tree res;
			  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			  return res;
			}
		  }
		}
	      else
		{
/* #line 470 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (VECTOR_CST != COMPLEX_CST)
		    {
		      {
/* #line 471 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree inverse = exact_inverse (type, captures[1]);
/* #line 472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (inverse)
			    {
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[0];
			      tree res_op1;
			      res_op1 =  inverse;
			      tree res;
			      res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			      return res;
			    }
		      }
		    }
		}
	    }
	}
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_CBRTF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_CBRT:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_CBRTL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    switch (TREE_CODE (o30))
	      {
	      case RDIV_EXPR:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  tree o41 = TREE_OPERAND (o30, 1);
		  {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4293, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[1], res;
			  {
			    tree ops2[2], res;
			    ops2[0] = captures[4];
			    ops2[1] = captures[3];
			    res = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			    ops1[0] = res;
			  }
			  {
			    res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (ops1[0]), 1, ops1[0]);
			    if (!res)
			      return NULL_TREE;
			  }
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_EXPF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXPL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_EXP:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP2F:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP2:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP2L:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_EXP2:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP10F:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP10:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_EXP10L:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_EXP10:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_POW10F:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_POW10:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	case CFN_BUILT_IN_POW10L:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (flag_unsafe_math_optimizations)
		{
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4299, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[0];
		  tree res_op1;
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
		      ops1[0] = res;
		    }
		    {
		      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (ops1[0]), 1, ops1[0]);
		      if (!res)
		        return NULL_TREE;
		    }
		    res_op1 = res;
		  }
		  tree res;
		  res = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
		  return res;
		}
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SINF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_COSF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_113 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  case CFN_BUILT_IN_TANF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_311 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SIN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_COS:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_113 (loc, type, op0, op1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  case CFN_BUILT_IN_TAN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_311 (loc, type, op0, op1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SINL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_COSL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_113 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  case CFN_BUILT_IN_TANL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_311 (loc, type, op0, op1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SIN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_COS:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_113 (loc, type, op0, op1, captures, CFN_SIN, CFN_COS, CFN_TAN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  case CFN_TAN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_311 (loc, type, op0, op1, captures, CFN_SIN, CFN_TAN, CFN_COS);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_COSF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SINF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_233 (loc, type, op0, op1, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_COS:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SIN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_233 (loc, type, op0, op1, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_COSL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SINL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_233 (loc, type, op0, op1, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_COS:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SIN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_233 (loc, type, op0, op1, captures, CFN_COS, CFN_SIN, CFN_TAN);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_TANF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SINF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_88 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_TAN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SIN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_88 (loc, type, op0, op1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_TANL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SINL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_88 (loc, type, op0, op1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_TAN:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SIN:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
			{
			  {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			    tree res = generic_simplify_88 (loc, type, op0, op1, captures, CFN_TAN, CFN_SIN, CFN_COS);
			    if (res) return res;
			  }
		        }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_178 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POW:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_178 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_POWL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_178 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	case CFN_POW:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    tree o21 = CALL_EXPR_ARG (op0, 1);
	    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 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			tree res = generic_simplify_178 (loc, type, op0, op1, captures, CFN_POW);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_BUILT_IN_POWF:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
	      tree res = generic_simplify_133 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWF);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_POW:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
	      tree res = generic_simplify_133 (loc, type, op0, op1, captures, CFN_BUILT_IN_POW);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_BUILT_IN_POWL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
	      tree res = generic_simplify_133 (loc, type, op0, op1, captures, CFN_BUILT_IN_POWL);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_POW:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    {
/* #line 4568 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
	      tree res = generic_simplify_133 (loc, type, op0, op1, captures, CFN_POW);
	      if (res) return res;
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_LT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      if (real_zerop (op1))
		{
		  {
/* #line 428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_196 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_60 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_33 (loc, type, op0, op1, captures, LT_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_290 (loc, type, op0, op1, captures, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_59 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_293 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
		    tree res = generic_simplify_37 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
		    tree res = generic_simplify_257 (loc, type, op0, op1, captures, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_78 (loc, type, op0, op1, captures, LT_EXPR, LE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      if (integer_zerop (op1))
		{
		  {
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    tree res = generic_simplify_45 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3231 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_175 (loc, type, op0, op1, captures, LT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_287 (loc, type, op0, op1, captures, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	    tree res = generic_simplify_121 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_289 (loc, type, op0, op1, captures, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	  tree res = generic_simplify_289 (loc, type, op0, op1, captures, LT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_246 (loc, type, op0, op1, captures, LT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, PLUS_EXPR, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, MINUS_EXPR, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_164 (loc, type, op0, op1, captures, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, LT_EXPR, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case REAL_CST:
	    {
	      {
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_57 (loc, type, op0, op1, captures, LT_EXPR, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_131 (loc, type, op0, op1, captures, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_81 (loc, type, op0, op1, captures, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
	  tree res = generic_simplify_312 (loc, type, op0, op1, captures, LT_EXPR);
	  if (res) return res;
	}
	switch (TREE_CODE (o20))
	  {
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o40))
		      {
		      case ADDR_EXPR:
		        {
			  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			    tree res = generic_simplify_189 (loc, type, op0, op1, captures, LT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      tree res = generic_simplify_189 (loc, type, op0, op1, captures, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	if (uniform_integer_cst_p (op1))
	  {
	    {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	      tree res = generic_simplify_256 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o30))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
		      tree res = generic_simplify_202 (loc, type, op0, op1, captures, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		tree res = generic_simplify_202 (loc, type, op0, op1, captures, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_SQRT, LT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_SQRT, LT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	tree res = generic_simplify_227 (loc, type, op0, op1, captures, LT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 4195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
	      tree res = generic_simplify_31 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case REALPART_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o30))
	      {
	      case CFN_SUB_OVERFLOW:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 4207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
			tree res = generic_simplify_271 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REALPART_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o20))
	      {
	      case CFN_ADD_OVERFLOW:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  tree o31 = CALL_EXPR_ARG (o20, 1);
		  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
			tree res = generic_simplify_105 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
		  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 };
			tree res = generic_simplify_105 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_all_onesp (o20))
	  {
	    {
/* #line 4225 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 };
	      tree res = generic_simplify_316 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_306 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_LE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      if (real_zerop (op1))
		{
		  {
/* #line 428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_196 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case TRUNC_MOD_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_41 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_minus_onep (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case INTEGER_CST:
	        {
		  {
/* #line 1465 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_221 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	  }
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_33 (loc, type, op0, op1, captures, LE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_290 (loc, type, op0, op1, captures, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_59 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_293 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
		    tree res = generic_simplify_37 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
		    tree res = generic_simplify_257 (loc, type, op0, op1, captures, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_193 (loc, type, op0, op1, captures, LE_EXPR, LT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      if (integer_zerop (op1))
		{
		  {
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    tree res = generic_simplify_45 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_26 (loc, type, op0, op1, captures, LE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_287 (loc, type, op0, op1, captures, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	    tree res = generic_simplify_121 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_289 (loc, type, op0, op1, captures, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	  tree res = generic_simplify_289 (loc, type, op0, op1, captures, LE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_246 (loc, type, op0, op1, captures, LE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, PLUS_EXPR, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, MINUS_EXPR, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_164 (loc, type, op0, op1, captures, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, LE_EXPR, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case REAL_CST:
	    {
	      {
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_57 (loc, type, op0, op1, captures, LE_EXPR, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_131 (loc, type, op0, op1, captures, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3704 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_269 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_81 (loc, type, op0, op1, captures, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
	  tree res = generic_simplify_312 (loc, type, op0, op1, captures, LE_EXPR);
	  if (res) return res;
	}
	switch (TREE_CODE (o20))
	  {
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o40))
		      {
		      case ADDR_EXPR:
		        {
			  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			    tree res = generic_simplify_189 (loc, type, op0, op1, captures, LE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      tree res = generic_simplify_189 (loc, type, op0, op1, captures, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	if (uniform_integer_cst_p (op1))
	  {
	    {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	      tree res = generic_simplify_256 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o30))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
		      tree res = generic_simplify_202 (loc, type, op0, op1, captures, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		tree res = generic_simplify_202 (loc, type, op0, op1, captures, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_SQRT, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_SQRT, LE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	tree res = generic_simplify_227 (loc, type, op0, op1, captures, LE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 4195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_31 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case REALPART_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o20))
	      {
	      case CFN_SUB_OVERFLOW:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  tree o31 = CALL_EXPR_ARG (o20, 1);
		  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		    {
		      {
/* #line 4207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
			tree res = generic_simplify_68 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REALPART_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o30))
	      {
	      case CFN_ADD_OVERFLOW:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
			tree res = generic_simplify_219 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
		  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 };
			tree res = generic_simplify_219 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if (integer_all_onesp (o30))
	  {
	    {
/* #line 4225 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_94 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_306 (loc, type, op0, op1, captures, LE_EXPR, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_POPCOUNT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTLL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTIMAX:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_GT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      if (real_zerop (op1))
		{
		  {
/* #line 428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_196 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case TRUNC_MOD_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_41 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_minus_onep (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case INTEGER_CST:
	        {
		  {
/* #line 1465 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_221 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	  }
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_33 (loc, type, op0, op1, captures, GT_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_290 (loc, type, op0, op1, captures, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_59 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_293 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
		    tree res = generic_simplify_37 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
		    tree res = generic_simplify_257 (loc, type, op0, op1, captures, GT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_193 (loc, type, op0, op1, captures, GT_EXPR, GE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      if (integer_zerop (op1))
		{
		  {
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    tree res = generic_simplify_45 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3231 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_175 (loc, type, op0, op1, captures, GT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_287 (loc, type, op0, op1, captures, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	    tree res = generic_simplify_121 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_289 (loc, type, op0, op1, captures, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	  tree res = generic_simplify_289 (loc, type, op0, op1, captures, GT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_246 (loc, type, op0, op1, captures, GT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, PLUS_EXPR, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, MINUS_EXPR, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_164 (loc, type, op0, op1, captures, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, GT_EXPR, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case REAL_CST:
	    {
	      {
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_57 (loc, type, op0, op1, captures, GT_EXPR, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_131 (loc, type, op0, op1, captures, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3704 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_269 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_81 (loc, type, op0, op1, captures, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
	  tree res = generic_simplify_312 (loc, type, op0, op1, captures, GT_EXPR);
	  if (res) return res;
	}
	switch (TREE_CODE (o20))
	  {
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o40))
		      {
		      case ADDR_EXPR:
		        {
			  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			    tree res = generic_simplify_189 (loc, type, op0, op1, captures, GT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      tree res = generic_simplify_189 (loc, type, op0, op1, captures, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	if (uniform_integer_cst_p (op1))
	  {
	    {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	      tree res = generic_simplify_256 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o30))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
		      tree res = generic_simplify_202 (loc, type, op0, op1, captures, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		tree res = generic_simplify_202 (loc, type, op0, op1, captures, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_SQRT, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_SQRT, GT_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	tree res = generic_simplify_227 (loc, type, op0, op1, captures, GT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, GT_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 4195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_31 (loc, type, op0, op1, captures, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case REALPART_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o20))
	      {
	      case CFN_SUB_OVERFLOW:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  tree o31 = CALL_EXPR_ARG (o20, 1);
		  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		    {
		      {
/* #line 4207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
			tree res = generic_simplify_68 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REALPART_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o30))
	      {
	      case CFN_ADD_OVERFLOW:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
			tree res = generic_simplify_219 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
		  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 };
			tree res = generic_simplify_219 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if (integer_all_onesp (o30))
	  {
	    {
/* #line 4225 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_94 (loc, type, op0, op1, captures, LT_EXPR, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_306 (loc, type, op0, op1, captures, GT_EXPR, LT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_POPCOUNT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTLL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTIMAX:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_GE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case RDIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      if (real_zerop (op1))
		{
		  {
/* #line 428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_196 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_60 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_307 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_33 (loc, type, op0, op1, captures, GE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_290 (loc, type, op0, op1, captures, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_70 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_59 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_293 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
		    tree res = generic_simplify_37 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
		    tree res = generic_simplify_257 (loc, type, op0, op1, captures, GE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_19 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_35 (loc, type, op0, op1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_78 (loc, type, op0, op1, captures, GE_EXPR, GT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      if (integer_zerop (op1))
		{
		  {
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    tree res = generic_simplify_45 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_26 (loc, type, op0, op1, captures, GE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_287 (loc, type, op0, op1, captures, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	    tree res = generic_simplify_121 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_289 (loc, type, op0, op1, captures, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	  tree res = generic_simplify_289 (loc, type, op0, op1, captures, GE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_246 (loc, type, op0, op1, captures, GE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, PLUS_EXPR, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, MINUS_EXPR, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_164 (loc, type, op0, op1, captures, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, GE_EXPR, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case REAL_CST:
	    {
	      {
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_57 (loc, type, op0, op1, captures, GE_EXPR, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_131 (loc, type, op0, op1, captures, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_81 (loc, type, op0, op1, captures, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
	  tree res = generic_simplify_312 (loc, type, op0, op1, captures, GE_EXPR);
	  if (res) return res;
	}
	switch (TREE_CODE (o20))
	  {
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o40))
		      {
		      case ADDR_EXPR:
		        {
			  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			    tree res = generic_simplify_189 (loc, type, op0, op1, captures, GE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      tree res = generic_simplify_189 (loc, type, op0, op1, captures, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	if (uniform_integer_cst_p (op1))
	  {
	    {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	      tree res = generic_simplify_256 (loc, type, op0, op1, captures, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o30))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
		      tree res = generic_simplify_202 (loc, type, op0, op1, captures, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		tree res = generic_simplify_202 (loc, type, op0, op1, captures, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_SQRT, GE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_SQRT, GE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4062 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	tree res = generic_simplify_227 (loc, type, op0, op1, captures, GE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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 4180 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
		    tree res = generic_simplify_53 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 4195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
	      tree res = generic_simplify_31 (loc, type, op0, op1, captures, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case REALPART_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o30))
	      {
	      case CFN_SUB_OVERFLOW:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 4207 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
			tree res = generic_simplify_271 (loc, type, op0, op1, captures, LE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REALPART_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o20))
	      {
	      case CFN_ADD_OVERFLOW:
	        {
		  tree o30 = CALL_EXPR_ARG (o20, 0);
		  tree o31 = CALL_EXPR_ARG (o20, 1);
		  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
			tree res = generic_simplify_105 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
		  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		    {
		      {
/* #line 4215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 };
			tree res = generic_simplify_105 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_all_onesp (o20))
	  {
	    {
/* #line 4225 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 };
	      tree res = generic_simplify_316 (loc, type, op0, op1, captures, GE_EXPR, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 4247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_306 (loc, type, op0, op1, captures, GE_EXPR, LE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_232 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_CEIL_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_281 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_65 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_4 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_231 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case CEIL_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_47 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_117 (loc, type, op0, op1, captures, CEIL_MOD_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_FLOOR_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_281 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_65 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_4 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_231 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOOR_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_47 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_117 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	{
	  tree o30_pops[1];
	  if (tree_power_of_two_cand (o30, o30_pops))
	    {
	      tree o40 = o30_pops[0];
	      {
/* #line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 };
		tree res = generic_simplify_36 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
		if (res) return res;
	      }
}
	}
        break;
      }
    default:;
    }
{
  tree op1_pops[1];
  if (tree_power_of_two_cand (op1, op1_pops))
    {
      tree o30 = op1_pops[0];
      {
/* #line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 };
	tree res = generic_simplify_62 (loc, type, op0, op1, captures, FLOOR_MOD_EXPR);
	if (res) return res;
      }
}
}
  return NULL_TREE;
}

static tree
generic_simplify_ROUND_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_281 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_65 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_4 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_231 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case ROUND_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_47 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_117 (loc, type, op0, op1, captures, ROUND_MOD_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_TRUNC_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_281 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_65 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	if (res) return res;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_4 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	if (res) return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_231 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case TRUNC_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_47 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_117 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case INTEGER_CST:
      {
	{
/* #line 521 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 521 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))
	    {
	      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__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      {
		tree ops1[1], res;
		ops1[0] = captures[1];
		res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		res_op1 = res;
	      }
	      tree res;
	      res = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
	      return res;
	    }
	}
        break;
      }
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      {
/* #line 532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
		tree res = generic_simplify_51 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      {
	tree o30_pops[1];
	if (tree_power_of_two_cand (o30, o30_pops))
	  {
	    tree o40 = o30_pops[0];
	    {
/* #line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 };
	      tree res = generic_simplify_36 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	      if (res) return res;
	    }
}
      }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	{
/* #line 532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	  tree res = generic_simplify_51 (loc, type, op0, op1, captures);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
{
  tree op1_pops[1];
  if (tree_power_of_two_cand (op1, op1_pops))
    {
      tree o30 = op1_pops[0];
      {
/* #line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 };
	tree res = generic_simplify_62 (loc, type, op0, op1, captures, TRUNC_MOD_EXPR);
	if (res) return res;
      }
}
}
  return NULL_TREE;
}

static tree
generic_simplify_EQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case CEIL_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, EQ_EXPR, CEIL_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case FLOOR_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case ROUND_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, EQ_EXPR, ROUND_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case TRUNC_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case MULT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_30 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_33 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_290 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1562, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1589, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[2];
			tree res_op1;
			res_op1 = captures[1];
			tree res;
			res = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[0]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
		    tree res = generic_simplify_37 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
		    tree res = generic_simplify_257 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    switch (TREE_CODE (o50))
		      {
		      case INTEGER_CST:
		        {
			  switch (TREE_CODE (o51))
			    {
			    CASE_CONVERT:
			      {
				tree o70 = TREE_OPERAND (o51, 0);
				if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
				  {
				    {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
				      tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
      {
	tree op1_pops[1];
	if (tree_nop_convert (op1, op1_pops))
	  {
	    tree o40 = op1_pops[0];
	    switch (TREE_CODE (o40))
	      {
	      case PLUS_EXPR:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  tree o51 = TREE_OPERAND (o40, 1);
		  switch (TREE_CODE (o51))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o50))
		    {
		    CASE_CONVERT:
		      {
			tree o60 = TREE_OPERAND (o50, 0);
			if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
		  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case POINTER_PLUS_EXPR:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  tree o51 = TREE_OPERAND (o40, 1);
		  switch (TREE_CODE (o50))
		    {
		    CASE_CONVERT:
		      {
			tree o60 = TREE_OPERAND (o50, 0);
			if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
			  {
			    {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
			      tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
}
      }
	switch (TREE_CODE (o20))
	  {
	  case MINUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (o31))
		      {
		      CASE_CONVERT:
		        {
			  tree o50 = TREE_OPERAND (o31, 0);
			  switch (TREE_CODE (op1))
			    {
			    CASE_CONVERT:
			      {
				tree o70 = TREE_OPERAND (op1, 0);
				if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
				  {
				    {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
				      tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
			  if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    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 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      switch (TREE_CODE (o40))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (o41))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (o41, 0);
			  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_logical_inverted_value (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (tree_truth_valued_p (op1))
	    {
	      {
/* #line 1359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		tree res = generic_simplify_24 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	    }
        }
}
}
{
  tree op0_pops[1];
  if (tree_nop_convert (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case PLUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    switch (TREE_CODE (o31))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o31, 0);
		  switch (TREE_CODE (op1))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (op1, 0);
			if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (o30))
	      {
	      CASE_CONVERT:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  switch (TREE_CODE (op1))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (op1, 0);
			if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (o31))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o31, 0);
		  if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (op1))
	      {
	      CASE_CONVERT:
	        {
		  tree o60 = TREE_OPERAND (op1, 0);
		  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
		  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	    if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case POINTER_PLUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    switch (TREE_CODE (o30))
	      {
	      CASE_CONVERT:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  switch (TREE_CODE (op1))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (op1, 0);
			if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			  {
			    {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
			      tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (op1))
	      {
	      CASE_CONVERT:
	        {
		  tree o60 = TREE_OPERAND (op1, 0);
		  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
	      {
		{
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		  tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
        default:;
        }
}
}
if (tree_truth_valued_p (op0))
  {
    {
      tree op1_pops[1];
      if (tree_logical_inverted_value (op1, op1_pops))
        {
	  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		tree res = generic_simplify_24 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	    }
}
    }
  }
  switch (TREE_CODE (op1))
    {
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
{
  tree op1_pops[1];
  if (tree_nop_convert (op1, op1_pops))
    {
      tree o30 = op1_pops[0];
      switch (TREE_CODE (o30))
        {
	case PLUS_EXPR:
	  {
	    tree o40 = TREE_OPERAND (o30, 0);
	    tree o41 = TREE_OPERAND (o30, 1);
	    switch (TREE_CODE (o41))
	      {
	      CASE_CONVERT:
	        {
		  tree o60 = TREE_OPERAND (o41, 0);
		  if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (o40))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	    if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case POINTER_PLUS_EXPR:
	  {
	    tree o40 = TREE_OPERAND (o30, 0);
	    tree o41 = TREE_OPERAND (o30, 1);
	    switch (TREE_CODE (o40))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
	      {
		{
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
		  tree res = generic_simplify_167 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
        default:;
        }
}
}
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o20))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (o21))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o21, 0);
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		{
		  {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
		    tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 1648 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_66 (loc, type, op0, op1, captures, EQ_EXPR, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case MINUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      switch (TREE_CODE (o40))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (o41))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (o41, 0);
			  if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o30))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (o31))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o31, 0);
		    if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		{
		  {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    tree res = generic_simplify_264 (loc, type, op0, op1, captures, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2303 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_273 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_285 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_with_possible_nonzero_bits2 (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (tree_with_certain_nonzero_bits2 (op1, op1_pops))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
	      tree res = generic_simplify_153 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
}
      }
}
}
{
  tree op0_pops[1];
  if (tree_with_certain_nonzero_bits2 (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (tree_with_possible_nonzero_bits2 (op1, op1_pops))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
	      tree res = generic_simplify_153 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
}
      }
}
}
  switch (TREE_CODE (op1))
    {
    case MIN_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MAX_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_onep (o30))
		{
		  if (integer_onep (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 2421 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o31 };
			    tree res = generic_simplify_71 (loc, type, op0, op1, captures, EQ_EXPR, NE_EXPR);
			    if (res) return res;
			  }
		        }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_75 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 3196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_115 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 3196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_13 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      if (integer_zerop (op1))
		{
		  {
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    tree res = generic_simplify_45 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_26 (loc, type, op0, op1, captures, EQ_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_287 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	    tree res = generic_simplify_121 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_289 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	  tree res = generic_simplify_289 (loc, type, op0, op1, captures, EQ_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_246 (loc, type, op0, op1, captures, EQ_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, PLUS_EXPR, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, MINUS_EXPR, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_164 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case REAL_CST:
	    {
	      {
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_57 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 3627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		tree res = generic_simplify_130 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if (zerop (op1))
	  {
	    {
/* #line 3740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	      tree res = generic_simplify_208 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_81 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
	  tree res = generic_simplify_312 (loc, type, op0, op1, captures, EQ_EXPR);
	  if (res) return res;
	}
	switch (TREE_CODE (o20))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 3826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
			    tree res = generic_simplify_299 (loc, type, op0, op1, captures, EQ_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    {
	      {
/* #line 3810 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		tree res = generic_simplify_295 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_299 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 3833 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_261 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_SQRT, EQ_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_SQRT, EQ_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_XOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, EQ_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 3844 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
			    tree res = generic_simplify_23 (loc, type, op0, op1, captures, EQ_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o40))
		      {
		      case ADDR_EXPR:
		        {
			  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			    tree res = generic_simplify_189 (loc, type, op0, op1, captures, EQ_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      tree res = generic_simplify_189 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	    if (integer_zerop (op1))
	      {
		{
/* #line 3849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_112 (loc, type, op0, op1, captures, EQ_EXPR);
		  if (res) return res;
		}
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3844 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_23 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o30))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
		      tree res = generic_simplify_202 (loc, type, op0, op1, captures, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		tree res = generic_simplify_202 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (integer_zerop (op1))
	{
	  {
/* #line 3849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	    tree res = generic_simplify_112 (loc, type, op0, op1, captures, EQ_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	      {
		{
/* #line 3858 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_270 (loc, type, op0, op1, captures, EQ_EXPR, NE_EXPR);
		  if (res) return res;
		}
	      }
	  }
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      if (integer_pow2p (o21))
		{
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
			tree res = generic_simplify_102 (loc, type, op0, op1, captures, EQ_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 3884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 };
		  tree res = generic_simplify_135 (loc, type, op0, op1, captures, EQ_EXPR, GE_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  {
/* #line 4034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    tree res = generic_simplify_1 (loc, type, op0, op1, captures, EQ_EXPR);
    if (res) return res;
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 4047 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_298 (loc, type, op0, op1, captures, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (integer_onep (op1))
    {
      {
/* #line 4161 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4161 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0])))
	  {
	    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4163, __FILE__, __LINE__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = non_lvalue_loc (loc, res_op0);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_228 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_228 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_POPCOUNT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTLL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTIMAX:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_NE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case CEIL_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, NE_EXPR, CEIL_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case FLOOR_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, NE_EXPR, FLOOR_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case ROUND_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, NE_EXPR, ROUND_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case TRUNC_MOD_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_86 (loc, type, op0, op1, captures, NE_EXPR, TRUNC_MOD_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MULT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
		    tree res = generic_simplify_97 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case MULT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_30 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case EXACT_DIV_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		      {
			{
/* #line 1477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			  tree res = generic_simplify_33 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 1484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_290 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case PLUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
/* #line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1546, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case MINUS_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1562, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			res_op1 = captures[2];
			tree res;
			res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[1]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
			return res;
		      }
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1589, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[2];
			tree res_op1;
			res_op1 = captures[1];
			tree res;
			res = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
			if (TREE_SIDE_EFFECTS (captures[0]))
			  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case POINTER_DIFF_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1567 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
		    tree res = generic_simplify_37 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
		    tree res = generic_simplify_257 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    switch (TREE_CODE (o50))
		      {
		      case INTEGER_CST:
		        {
			  switch (TREE_CODE (o51))
			    {
			    CASE_CONVERT:
			      {
				tree o70 = TREE_OPERAND (o51, 0);
				if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
				  {
				    {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
				      tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
      {
	tree op1_pops[1];
	if (tree_nop_convert (op1, op1_pops))
	  {
	    tree o40 = op1_pops[0];
	    switch (TREE_CODE (o40))
	      {
	      case PLUS_EXPR:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  tree o51 = TREE_OPERAND (o40, 1);
		  switch (TREE_CODE (o51))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o50))
		    {
		    CASE_CONVERT:
		      {
			tree o60 = TREE_OPERAND (o50, 0);
			if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
		  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case POINTER_PLUS_EXPR:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  tree o51 = TREE_OPERAND (o40, 1);
		  switch (TREE_CODE (o50))
		    {
		    CASE_CONVERT:
		      {
			tree o60 = TREE_OPERAND (o50, 0);
			if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
			  {
			    {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
			      tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
}
      }
	switch (TREE_CODE (o20))
	  {
	  case MINUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (o31))
		      {
		      CASE_CONVERT:
		        {
			  tree o50 = TREE_OPERAND (o31, 0);
			  switch (TREE_CODE (op1))
			    {
			    CASE_CONVERT:
			      {
				tree o70 = TREE_OPERAND (op1, 0);
				if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
				  {
				    {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
				      tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				      if (res) return res;
				    }
				  }
			        break;
			      }
			    default:;
			    }
			  if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    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 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case MINUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      switch (TREE_CODE (o40))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (o41))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (o41, 0);
			  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_logical_inverted_value (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (tree_truth_valued_p (op1))
	    {
	      {
/* #line 1359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		tree res = generic_simplify_24 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	    }
        }
}
}
{
  tree op0_pops[1];
  if (tree_nop_convert (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case PLUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    switch (TREE_CODE (o31))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o31, 0);
		  switch (TREE_CODE (op1))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (op1, 0);
			if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (o30))
	      {
	      CASE_CONVERT:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  switch (TREE_CODE (op1))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (op1, 0);
			if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			  {
			    {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
			      tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (o31))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o31, 0);
		  if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (op1))
	      {
	      CASE_CONVERT:
	        {
		  tree o60 = TREE_OPERAND (op1, 0);
		  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
		  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	    if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case POINTER_PLUS_EXPR:
	  {
	    tree o30 = TREE_OPERAND (o20, 0);
	    tree o31 = TREE_OPERAND (o20, 1);
	    switch (TREE_CODE (o30))
	      {
	      CASE_CONVERT:
	        {
		  tree o40 = TREE_OPERAND (o30, 0);
		  switch (TREE_CODE (op1))
		    {
		    CASE_CONVERT:
		      {
			tree o70 = TREE_OPERAND (op1, 0);
			if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			  {
			    {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
			      tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (op1))
	      {
	      CASE_CONVERT:
	        {
		  tree o60 = TREE_OPERAND (op1, 0);
		  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
	      {
		{
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
		  tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
        default:;
        }
}
}
if (tree_truth_valued_p (op0))
  {
    {
      tree op1_pops[1];
      if (tree_logical_inverted_value (op1, op1_pops))
        {
	  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		tree res = generic_simplify_24 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	    }
}
    }
  }
  switch (TREE_CODE (op1))
    {
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
{
  tree op1_pops[1];
  if (tree_nop_convert (op1, op1_pops))
    {
      tree o30 = op1_pops[0];
      switch (TREE_CODE (o30))
        {
	case PLUS_EXPR:
	  {
	    tree o40 = TREE_OPERAND (o30, 0);
	    tree o41 = TREE_OPERAND (o30, 1);
	    switch (TREE_CODE (o41))
	      {
	      CASE_CONVERT:
	        {
		  tree o60 = TREE_OPERAND (o41, 0);
		  if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    switch (TREE_CODE (o40))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		    {
		      {
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
			tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	    if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
	      {
		{
/* #line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
		  tree res = generic_simplify_44 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case POINTER_PLUS_EXPR:
	  {
	    tree o40 = TREE_OPERAND (o30, 0);
	    tree o41 = TREE_OPERAND (o30, 1);
	    switch (TREE_CODE (o40))
	      {
	      CASE_CONVERT:
	        {
		  tree o50 = TREE_OPERAND (o40, 0);
		  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		    {
		      {
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
			tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
	      {
		{
/* #line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
		  tree res = generic_simplify_167 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	    break;
	  }
        default:;
        }
}
}
  switch (TREE_CODE (op0))
    {
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
	      tree res = generic_simplify_100 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o20))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (o21))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o21, 0);
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		{
		  {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
		    tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case TRUNC_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 1648 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_66 (loc, type, op0, op1, captures, NE_EXPR, GE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case MINUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      switch (TREE_CODE (o40))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (o41))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (o41, 0);
			  if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
			    {
			      {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
				tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o30))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (o31))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o31, 0);
		    if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		      {
			{
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			  tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		{
		  {
/* #line 1658 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    tree res = generic_simplify_264 (loc, type, op0, op1, captures, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2303 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_273 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_285 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_with_possible_nonzero_bits2 (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (tree_with_certain_nonzero_bits2 (op1, op1_pops))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
	      tree res = generic_simplify_153 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
}
      }
}
}
{
  tree op0_pops[1];
  if (tree_with_certain_nonzero_bits2 (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (tree_with_possible_nonzero_bits2 (op1, op1_pops))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
	      tree res = generic_simplify_153 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
}
      }
}
}
  switch (TREE_CODE (op1))
    {
    case MIN_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MAX_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_283 (loc, type, op0, op1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_onep (o30))
		{
		  if (integer_onep (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 2421 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o31 };
			    tree res = generic_simplify_71 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
			    if (res) return res;
			  }
		        }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_75 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 3196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_115 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case POINTER_DIFF_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 3196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_13 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case MULT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      if (integer_zerop (op1))
		{
		  {
/* #line 3208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    tree res = generic_simplify_45 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3231 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_175 (loc, type, op0, op1, captures, NE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_287 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	    tree res = generic_simplify_121 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_289 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
	  tree res = generic_simplify_289 (loc, type, op0, op1, captures, NE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_246 (loc, type, op0, op1, captures, NE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, PLUS_EXPR, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3358 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_163 (loc, type, op0, op1, captures, MINUS_EXPR, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case REAL_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case REAL_CST:
		  {
		    {
/* #line 3374 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_164 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
	  case REAL_CST:
	    {
	      {
/* #line 3559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_57 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EXACT_DIV_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 3627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		tree res = generic_simplify_130 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    case ABS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if (zerop (op1))
	  {
	    {
/* #line 3740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	      tree res = generic_simplify_208 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_81 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 3747 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
	  tree res = generic_simplify_312 (loc, type, op0, op1, captures, NE_EXPR);
	  if (res) return res;
	}
	switch (TREE_CODE (o20))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 3826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
			    tree res = generic_simplify_299 (loc, type, op0, op1, captures, NE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    {
	      {
/* #line 3810 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		tree res = generic_simplify_295 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_299 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (op1))
	  {
	    {
/* #line 3833 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_261 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_SQRTF:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTF:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_BUILT_IN_SQRTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_BUILT_IN_SQRTL:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	case CFN_SQRT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    switch (TREE_CODE (op1))
	      {
	      case REAL_CST:
	        {
		  {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    tree res = generic_simplify_22 (loc, type, op0, op1, captures, CFN_SQRT, NE_EXPR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CALL_EXPR:
	        switch (get_call_combined_fn (op1))
	          {
		  case CFN_SQRT:
		    {
		      tree o40 = CALL_EXPR_ARG (op1, 0);
		      {
/* #line 3382 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
			tree res = generic_simplify_122 (loc, type, op0, op1, captures, CFN_SQRT, NE_EXPR);
			if (res) return res;
		      }
		      break;
		    }
		  default:;
	          }
	        break;
	      default:;
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_XOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 3839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_263 (loc, type, op0, op1, captures, NE_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 3844 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
			    tree res = generic_simplify_23 (loc, type, op0, op1, captures, NE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o40))
		      {
		      case ADDR_EXPR:
		        {
			  {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
			    tree res = generic_simplify_189 (loc, type, op0, op1, captures, NE_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      tree res = generic_simplify_189 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	    if (integer_zerop (op1))
	      {
		{
/* #line 3849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_112 (loc, type, op0, op1, captures, NE_EXPR);
		  if (res) return res;
		}
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 3844 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_23 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o30))
	        {
		case ADDR_EXPR:
		  {
		    {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
		      tree res = generic_simplify_202 (loc, type, op0, op1, captures, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case ADDR_EXPR:
	    {
	      {
/* #line 3917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		tree res = generic_simplify_202 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (integer_zerop (op1))
	{
	  {
/* #line 3849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	    tree res = generic_simplify_112 (loc, type, op0, op1, captures, NE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_pow2p (o21))
	  {
	    if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	      {
		{
/* #line 3858 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
		  tree res = generic_simplify_270 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
		  if (res) return res;
		}
	      }
	  }
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      if (integer_pow2p (o21))
		{
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
			tree res = generic_simplify_102 (loc, type, op0, op1, captures, NE_EXPR, LT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
	if (integer_pow2p (o21))
	  {
	    if (integer_zerop (op1))
	      {
		{
/* #line 3884 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 };
		  tree res = generic_simplify_135 (loc, type, op0, op1, captures, NE_EXPR, LT_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  {
/* #line 4034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    tree res = generic_simplify_1 (loc, type, op0, op1, captures, NE_EXPR);
    if (res) return res;
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 4047 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_298 (loc, type, op0, op1, captures, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0])))
	  {
	    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4157, __FILE__, __LINE__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = non_lvalue_loc (loc, res_op0);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_228 (loc, type, op0, op1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 4970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		      tree res = generic_simplify_228 (loc, type, op0, op1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op0))
        {
	case CFN_BUILT_IN_POPCOUNT:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTLL:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_BUILT_IN_POPCOUNTIMAX:
	  {
	    tree o20 = CALL_EXPR_ARG (op0, 0);
	    if (integer_zerop (op1))
	      {
		{
/* #line 5222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		  tree res = generic_simplify_174 (loc, type, op0, op1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_LSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case RSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 2343 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 2343 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type)))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2344, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[2], res;
			  ops1[0] =  build_minus_one_cst (type);
			  ops1[1] = captures[1];
			  res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
if (integer_onep (op0))
  {
    switch (TREE_CODE (op1))
      {
      case MINUS_EXPR:
        {
	  tree o30 = TREE_OPERAND (op1, 0);
	  tree o31 = TREE_OPERAND (op1, 1);
	  switch (TREE_CODE (o30))
	    {
	    case INTEGER_CST:
	      {
		{
/* #line 711 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
/* #line 711 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (TYPE_UNSIGNED (type))
			{
			  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__);
			  tree res_op0;
			  {
			    tree ops1[2], res;
			    ops1[0] = captures[0];
			    ops1[1] = captures[2];
			    res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			    res_op0 = res;
			  }
			  tree res_op1;
			  res_op1 = captures[3];
			  tree res;
			  res = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
			  return res;
			}
		      else
			{
			  {
/* #line 716 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
			      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__);
			      tree res_op0;
			      {
				tree ops1[2], res;
				{
				  tree ops2[2], res;
				  {
				    tree ops3[1], res;
				    ops3[0] = captures[0];
				    if (TREE_TYPE (ops3[0]) != utype)
				      res = fold_build1_loc (loc, NOP_EXPR, utype, ops3[0]);
				    else
				      res = ops3[0];
				    ops2[0] = res;
				  }
				  ops2[1] = captures[2];
				  res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
				  ops1[0] = res;
				}
				ops1[1] = captures[3];
				res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				res_op0 = res;
			      }
			      tree res;
			      res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
			      return res;
			  }
			}
		    }
		}
	        break;
	      }
	    default:;
	    }
          break;
        }
      default:;
      }
  }
  if (integer_zerop (op1))
    {
      {
/* #line 2357 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_49 (loc, type, op0, op1, captures, LSHIFT_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_288 (loc, type, op0, op1, captures, LSHIFT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case VECTOR_CST:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_242 (loc, type, op0, op1, captures, LSHIFT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case CONSTRUCTOR:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_92 (loc, type, op0, op1, captures, LSHIFT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case LSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_72 (loc, type, op0, op1, captures, LSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_198 (loc, type, op0, op1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_198 (loc, type, op0, op1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_198 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
		      tree res = generic_simplify_217 (loc, type, op0, op1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
		      tree res = generic_simplify_217 (loc, type, op0, op1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
		      tree res = generic_simplify_217 (loc, type, op0, op1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_BIT_AND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		      {
			{
/* #line 733 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			  tree res = generic_simplify_237 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
		      {
			{
/* #line 733 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[1] ATTRIBUTE_UNUSED = { o30 };
			  tree res = generic_simplify_237 (loc, type, op0, op1, captures);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 733 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_237 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 733 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_237 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	switch (TREE_CODE (o30))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if (integer_onep (o40))
		{
		  if (integer_minus_onep (o31))
		    {
		      {
/* #line 738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o41 };
/* #line 738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (TYPE_UNSIGNED (type))
			  {
			    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			    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__);
			    tree res_op0;
			    res_op0 = captures[0];
			    tree res_op1;
			    {
			      tree ops1[1], res;
			      {
				tree ops2[2], res;
				ops2[0] =  build_all_ones_cst (type);
				ops2[1] = captures[3];
				res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
				ops1[0] = res;
			      }
			      res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			      res_op1 = res;
			    }
			    tree res;
			    res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_onep (o30))
		{
		  if (integer_minus_onep (o21))
		    {
		      {
/* #line 738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, op0, o20, o31 };
/* #line 738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (TYPE_UNSIGNED (type))
			  {
			    if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			    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__);
			    tree res_op0;
			    res_op0 = captures[0];
			    tree res_op1;
			    {
			      tree ops1[1], res;
			      {
				tree ops2[2], res;
				ops2[0] =  build_all_ones_cst (type);
				ops2[1] = captures[3];
				res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
				ops1[0] = res;
			      }
			      res = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			      res_op1 = res;
			    }
			    tree res;
			    res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		      }
		    }
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
			    tree res = generic_simplify_76 (loc, type, op0, op1, captures, BIT_AND_EXPR, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
			    tree res = generic_simplify_76 (loc, type, op0, op1, captures, BIT_IOR_EXPR, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
			    tree res = generic_simplify_76 (loc, type, op0, op1, captures, BIT_XOR_EXPR, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
			    tree res = generic_simplify_296 (loc, type, op0, op1, captures, BIT_AND_EXPR, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
			    tree res = generic_simplify_296 (loc, type, op0, op1, captures, BIT_IOR_EXPR, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
			    tree res = generic_simplify_296 (loc, type, op0, op1, captures, BIT_XOR_EXPR, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 874 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		tree res = generic_simplify_195 (loc, type, op0, op1, captures, PLUS_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case EQ_EXPR:
	        {
		  tree o50 = TREE_OPERAND (op1, 0);
		  tree o51 = TREE_OPERAND (op1, 1);
		  if (integer_zerop (o51))
		    {
		      {
/* #line 748 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			tree res = generic_simplify_218 (loc, type, op0, op1, captures, BIT_AND_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
	if (integer_all_onesp (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case EQ_EXPR:
	        {
		  tree o50 = TREE_OPERAND (op1, 0);
		  tree o51 = TREE_OPERAND (op1, 1);
		  if (integer_all_onesp (o51))
		    {
		      {
/* #line 757 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
			tree res = generic_simplify_90 (loc, type, op0, op1, captures, BIT_AND_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o50))
	        {
		case BIT_XOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_188 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_188 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
			      tree res = generic_simplify_188 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
			      tree res = generic_simplify_188 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
			    tree res = generic_simplify_76 (loc, type, op0, op1, captures, BIT_AND_EXPR, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
			    tree res = generic_simplify_76 (loc, type, op0, op1, captures, BIT_IOR_EXPR, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
			    tree res = generic_simplify_76 (loc, type, op0, op1, captures, BIT_XOR_EXPR, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
			    tree res = generic_simplify_296 (loc, type, op0, op1, captures, BIT_AND_EXPR, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
			    tree res = generic_simplify_296 (loc, type, op0, op1, captures, BIT_IOR_EXPR, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 863 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
			    tree res = generic_simplify_296 (loc, type, op0, op1, captures, BIT_XOR_EXPR, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 874 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		tree res = generic_simplify_195 (loc, type, op0, op1, captures, MINUS_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 886 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_111 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 886 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_111 (loc, type, op0, op1, captures, BIT_IOR_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 886 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_111 (loc, type, op0, op1, captures, BIT_XOR_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (integer_zerop (op1))
    {
      {
/* #line 920 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	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 res;
	res = captures[1];
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    }
  if (integer_all_onesp (op1))
    {
      {
/* #line 943 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
	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 res_op0;
	res_op0 = captures[0];
	tree res;
	res = non_lvalue_loc (loc, res_op0);
	return res;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_159 (loc, type, op0, op1, captures, BIT_AND_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case BIT_NOT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
		{
		  {
/* #line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 };
		    tree res = generic_simplify_226 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 };
		    tree res = generic_simplify_238 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 };
		    tree res = generic_simplify_238 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
			      tree res = generic_simplify_177 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
		      tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    tree res = generic_simplify_197 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
		    tree res = generic_simplify_197 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_177 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
			  {
			    {
/* #line 1060 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_NOT_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  switch (TREE_CODE (o51))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o70 = TREE_OPERAND (o51, 0);
			if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
			  {
			    {
/* #line 1060 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
				{
				  {
/* #line 1065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o21, op1 };
				    tree res = generic_simplify_251 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o21, op1 };
				    tree res = generic_simplify_251 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
		      {
			switch (TREE_CODE (o61))
			  {
			  case BIT_NOT_EXPR:
			    {
			      tree o80 = TREE_OPERAND (o61, 0);
			      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
				{
				  {
/* #line 1065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o40, o20, op1 };
				    tree res = generic_simplify_251 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (o60))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o40, o20, op1 };
				    tree res = generic_simplify_251 (loc, type, op0, op1, captures);
				    if (res) return res;
				  }
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      switch (TREE_CODE (op1))
	        {
		case BIT_IOR_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
			      tree res = generic_simplify_250 (loc, type, op0, op1, captures);
			      if (res) return res;
			    }
			  }
		      }
		    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o50))
		      {
		      case BIT_NOT_EXPR:
		        {
			  tree o60 = TREE_OPERAND (o50, 0);
			  {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
			    tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_NOT_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    {
/* #line 1078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
		      tree res = generic_simplify_126 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_XOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1119 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
	      tree res = generic_simplify_275 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_IOR_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
			    {
			      {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
				tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
			  tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
			  tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      switch (TREE_CODE (o40))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o50 = TREE_OPERAND (o40, 0);
		    tree o51 = TREE_OPERAND (o40, 1);
		    if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 };
			  tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		      {
			{
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 };
			  tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      tree o41 = TREE_OPERAND (op1, 1);
	      if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case BIT_IOR_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o21, 0))
		{
		  {
/* #line 1131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
		    tree res = generic_simplify_230 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    CASE_CONVERT:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      tree o41 = TREE_OPERAND (o30, 1);
	      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 };
		    tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
		{
		  {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
		    tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      switch (TREE_CODE (o50))
	        {
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (o50, 0);
		    tree o61 = TREE_OPERAND (o50, 1);
		    if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 };
			  tree res = generic_simplify_18 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
	      tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
	      tree res = generic_simplify_136 (loc, type, op0, op1, captures, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (op1))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 };
		    tree res = generic_simplify_54 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_AND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
	      tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
	  {
	    {
/* #line 1141 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 };
	      tree res = generic_simplify_300 (loc, type, op0, op1, captures, BIT_AND_EXPR);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    switch (TREE_CODE (o60))
		      {
		      case BIT_AND_EXPR:
		        {
			  tree o70 = TREE_OPERAND (o60, 0);
			  tree o71 = TREE_OPERAND (o60, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
			  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
			    {
			      {
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 };
				tree res = generic_simplify_6 (loc, type, op0, op1, captures, BIT_AND_EXPR);
				if (res) return res;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		case BIT_AND_EXPR:
		  {
		    tree o60 = TREE_OPERAND (op1, 0);
		    tree o61 = TREE_OPERAND (op1, 1);
		    if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
		      {
			{
/* #line 1151 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 };
			  tree res = generic_simplify_63 (loc, type, op0, op1, captures, BIT_AND_EXPR);
			  if (res) return res;
			}
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (op1))
	  {
	  CASE_CONVERT:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_313 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	{
/* #line 1262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	  tree res = generic_simplify_313 (loc, type, op0, op1, captures, BIT_AND_EXPR);
	  if (res) return res;
	}
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o20))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (o21))
	{
	  if (CONSTANT_CLASS_P (op1))
	    {
	      {
/* #line 1299 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		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__);
		if (! tree_invariant_p (captures[2])) return NULL_TREE;
		tree res_op0;
		{
		  tree ops1[2], res;
		  ops1[0] = captures[0];
		  ops1[1] = unshare_expr (captures[2]);
		  res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  res_op0 = res;
		}
		tree res_op1;
		{
		  tree ops1[2], res;
		  ops1[0] = captures[1];
		  ops1[1] = captures[2];
		  res = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  res_op1 = res;
		}
		tree res;
		res = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
		return res;
	      }
	    }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case BIT_IOR_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
	      tree res = generic_simplify_144 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
	      if (res) return res;
	    }
	  }
	switch (TREE_CODE (o30))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o30, 0);
	      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o31))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (o31, 0);
	      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
		{
		  {
/* #line 1294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    tree res = generic_simplify_38 (loc, type, op0, op1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (CONSTANT_CLASS_P (o21))
	  {
	    if (CONSTANT_CLASS_P (op1))
	      {
		{
/* #line 1305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		  tree res = generic_simplify_209 (loc, type, op0, op1, captures, BIT_AND_EXPR);
		  if (res) return res;
		}
	      }
	  }
        break;
      }
    default:;
    }
  {
    tree op1_pops[1];
    if (tree_logical_inverted_value (op1, op1_pops))
      {
	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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_128 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
}
  }
  switch (TREE_CODE (op0))
    {
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 1801 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		tree res = generic_simplify_252 (loc, type, op0, op1, captures);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o20))
	  {
	  case LSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o31))
		      {
		      case INTEGER_CST:
		        {
			  switch (TREE_CODE (op1))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 };
				  tree res = generic_simplify_27 (loc, type, op0, op1, captures, LSHIFT_EXPR);
				  if (res) return res;
				}
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 };
			    tree res = generic_simplify_77 (loc, type, op0, op1, captures, LSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case RSHIFT_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o30))
	        {
		CASE_CONVERT:
		  {
		    tree o40 = TREE_OPERAND (o30, 0);
		    switch (TREE_CODE (o31))
		      {
		      case INTEGER_CST:
		        {
			  switch (TREE_CODE (op1))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 };
				  tree res = generic_simplify_27 (loc, type, op0, op1, captures, RSHIFT_EXPR);
				  if (res) return res;
				}
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 };
			    tree res = generic_simplify_77 (loc, type, op0, op1, captures, RSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_logical_inverted_value (op0, op0_pops))
    {
      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	    tree res = generic_simplify_128 (loc, type, op0, op1, captures);
	    if (res) return res;
	  }
        }
}
}
  switch (TREE_CODE (op1))
    {
    case INTEGER_CST:
      {
	{
/* #line 1801 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_252 (loc, type, op0, op1, captures);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case LSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 };
			    tree res = generic_simplify_157 (loc, type, op0, op1, captures, LSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 };
		      tree res = generic_simplify_216 (loc, type, op0, op1, captures, LSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case RSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 };
			    tree res = generic_simplify_157 (loc, type, op0, op1, captures, RSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2445 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 };
		      tree res = generic_simplify_216 (loc, type, op0, op1, captures, RSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case ORDERED_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case ORDERED_EXPR:
	        {
		  tree o50 = TREE_OPERAND (op1, 0);
		  tree o51 = TREE_OPERAND (op1, 1);
		  if ((o51 == o50 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o50, 0) && types_match (o51, o50)))
		    {
		      {
/* #line 3663 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
/* #line 3663 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (types_match (captures[0], captures[1]))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3664, __FILE__, __LINE__);
			    tree res_op0;
			    res_op0 = captures[0];
			    tree res_op1;
			    res_op1 = captures[1];
			    tree res;
			    res = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
			    return res;
			  }
		      }
		    }
		  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		    {
		      {
/* #line 3670 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 };
			tree res = generic_simplify_7 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
		  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		    {
		      {
/* #line 3670 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
			tree res = generic_simplify_7 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
	switch (TREE_CODE (op1))
	  {
	  case ORDERED_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3670 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			tree res = generic_simplify_169 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      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 3670 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 };
			tree res = generic_simplify_169 (loc, type, op0, op1, captures);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case EQ_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LT_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case EQ_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, EQ_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LT_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case NE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, NE_EXPR, EQ_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LT_EXPR, GE_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case GE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (op1))
	  {
	  case LT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LT_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
	  case LE_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, LE_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case EQ_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      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 3686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			tree res = generic_simplify_50 (loc, type, op0, op1, captures, EQ_EXPR, GT_EXPR);
			if (res) return res;
		      }
		    }
	        }
	      break;
	    }
	  case GT_EXPR:
	    {
	      tree o50 = TREE_OPERAND (op1, 0);
	      tree o51 = TREE_OPERAND (op1, 1);
	      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
		    if (res) return res;
		  }
	        }
	      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
		{
		  {
/* #line 4949 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
		    tree res = generic_simplify_127 (loc, type, op0, op1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
		    if (res) return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case MINUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o21, 0);
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 4916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 };
			    tree res = generic_simplify_108 (loc, type, op0, op1, captures, MINUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (o21, 0);
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 4916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 };
			    tree res = generic_simplify_108 (loc, type, op0, op1, captures, PLUS_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_MIN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 2178 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_141 (loc, type, op0, op1, captures);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MAX_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_222 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_222 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MAX_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
	      tree res = generic_simplify_222 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
	      tree res = generic_simplify_222 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2197 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_206 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2197 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_206 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  {
/* #line 2204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2207, __FILE__, __LINE__);
	tree res;
	res = captures[1];
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    else
      {
/* #line 2208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST))
	  {
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2211, __FILE__, __LINE__);
	    tree res;
	    res = captures[0];
	    if (TREE_SIDE_EFFECTS (captures[1]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	    return res;
	  }
      }
  }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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 2237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
/* #line 2237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
		      {
/* #line 2238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (tree_int_cst_sgn (captures[2]) > 0)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2239, __FILE__, __LINE__);
			    tree res;
			    res = captures[0];
			    if (TREE_SIDE_EFFECTS (captures[2]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			    return res;
			  }
			else
			  {
			    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2240, __FILE__, __LINE__);
			    tree res;
			    res = captures[1];
			    return res;
			  }
		      }
		  }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 2237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
/* #line 2237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
		      {
/* #line 2238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (tree_int_cst_sgn (captures[2]) > 0)
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2239, __FILE__, __LINE__);
			    tree res;
			    res = captures[0];
			    if (TREE_SIDE_EFFECTS (captures[2]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			    return res;
			  }
			else
			  {
			    if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2240, __FILE__, __LINE__);
			    tree res;
			    res = captures[1];
			    return res;
			  }
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 2278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		  {
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2281, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[2], res;
		      ops1[0] = captures[1];
		      ops1[1] = captures[3];
		      res = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
		    return res;
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 2288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_20 (loc, type, op0, op1, captures, MIN_EXPR, MAX_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_MAX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 2178 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_141 (loc, type, op0, op1, captures);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case MIN_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
	  {
	    {
/* #line 2186 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
	      tree res = generic_simplify_315 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2186 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
	      tree res = generic_simplify_315 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case MIN_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
	  {
	    {
/* #line 2186 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
	      tree res = generic_simplify_315 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2186 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
	      tree res = generic_simplify_315 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 2190 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      tree res = generic_simplify_74 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	  {
	    {
/* #line 2190 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	      tree res = generic_simplify_74 (loc, type, op0, op1, captures);
	      if (res) return res;
	    }
	  }
        break;
      }
    default:;
    }
  {
/* #line 2215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST))
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2218, __FILE__, __LINE__);
	tree res;
	res = captures[1];
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    else
      {
/* #line 2219 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST))
	  {
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2222, __FILE__, __LINE__);
	    tree res;
	    res = captures[0];
	    if (TREE_SIDE_EFFECTS (captures[1]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	    return res;
	  }
      }
  }
  switch (TREE_CODE (op1))
    {
    case PLUS_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	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 2228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
/* #line 2228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
		      {
/* #line 2229 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (tree_int_cst_sgn (captures[2]) > 0)
			  {
			    if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2230, __FILE__, __LINE__);
			    tree res;
			    res = captures[1];
			    return res;
			  }
			else
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2231, __FILE__, __LINE__);
			    tree res;
			    res = captures[0];
			    if (TREE_SIDE_EFFECTS (captures[2]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			    return res;
			  }
		      }
		  }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case PLUS_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 2228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
/* #line 2228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
		      {
/* #line 2229 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (tree_int_cst_sgn (captures[2]) > 0)
			  {
			    if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2230, __FILE__, __LINE__);
			    tree res;
			    res = captures[1];
			    return res;
			  }
			else
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2231, __FILE__, __LINE__);
			    tree res;
			    res = captures[0];
			    if (TREE_SIDE_EFFECTS (captures[2]))
			      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
			    return res;
			  }
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 2278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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]))))
		  {
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2281, __FILE__, __LINE__);
		    tree res_op0;
		    {
		      tree ops1[2], res;
		      ops1[0] = captures[1];
		      ops1[1] = captures[3];
		      res = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      res_op0 = res;
		    }
		    tree res;
		    res = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
		    return res;
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_NOT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case BIT_NOT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 2288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
		tree res = generic_simplify_20 (loc, type, op0, op1, captures, MAX_EXPR, MIN_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_all_onesp (op0))
    {
      {
/* #line 2331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_210 (loc, type, op0, op1, captures, LROTATE_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 2357 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_49 (loc, type, op0, op1, captures, LROTATE_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_288 (loc, type, op0, op1, captures, LROTATE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case VECTOR_CST:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_242 (loc, type, op0, op1, captures, LROTATE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case CONSTRUCTOR:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_92 (loc, type, op0, op1, captures, LROTATE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case INTEGER_CST:
      {
	{
/* #line 2389 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2389, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 =  const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), build_int_cst (TREE_TYPE (captures[1]), element_precision (type)), captures[1]);
	  tree res;
	  res = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
	  return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case LROTATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_72 (loc, type, op0, op1, captures, LROTATE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  if (integer_all_onesp (op0))
    {
      {
/* #line 2331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_210 (loc, type, op0, op1, captures, RROTATE_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 2357 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_49 (loc, type, op0, op1, captures, RROTATE_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_288 (loc, type, op0, op1, captures, RROTATE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case VECTOR_CST:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_242 (loc, type, op0, op1, captures, RROTATE_EXPR);
	  if (res) return res;
	}
        break;
      }
    case CONSTRUCTOR:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_92 (loc, type, op0, op1, captures, RROTATE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case RROTATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_72 (loc, type, op0, op1, captures, RROTATE_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_RSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case LSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	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 2350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 2350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    if (TYPE_UNSIGNED (type) && (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2352, __FILE__, __LINE__);
			tree res_op0;
			res_op0 = captures[0];
			tree res_op1;
			{
			  tree ops1[2], res;
			  ops1[0] =  build_minus_one_cst (type);
			  ops1[1] = captures[1];
			  res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  res_op1 = res;
			}
			tree res;
			res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
			return res;
		      }
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
if (integer_all_onesp (op0))
  {
    {
/* #line 2336 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2336 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
      if (!TYPE_UNSIGNED (type) && tree_expr_nonnegative_p (captures[1]))
	{
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2338, __FILE__, __LINE__);
	  tree res;
	  res = captures[0];
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
    }
  }
  if (integer_zerop (op1))
    {
      {
/* #line 2357 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_49 (loc, type, op0, op1, captures, RSHIFT_EXPR);
	if (res) return res;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	tree res = generic_simplify_288 (loc, type, op0, op1, captures, RSHIFT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op1))
    {
    case VECTOR_CST:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_242 (loc, type, op0, op1, captures, RSHIFT_EXPR);
	  if (res) return res;
	}
        break;
      }
    case CONSTRUCTOR:
      {
	{
/* #line 2366 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_92 (loc, type, op0, op1, captures, RSHIFT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case RSHIFT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2397 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		      tree res = generic_simplify_72 (loc, type, op0, op1, captures, RSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    CASE_CONVERT:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_198 (loc, type, op0, op1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_XOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_198 (loc, type, op0, op1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
	  case BIT_IOR_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
			    tree res = generic_simplify_198 (loc, type, op0, op1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
			    if (res) return res;
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_AND_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
		      tree res = generic_simplify_217 (loc, type, op0, op1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_XOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
		      tree res = generic_simplify_217 (loc, type, op0, op1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case BIT_IOR_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		case INTEGER_CST:
		  {
		    {
/* #line 2532 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
		      tree res = generic_simplify_217 (loc, type, op0, op1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
		      if (res) return res;
		    }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case REALPART_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case IMAGPART_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
		{
		  {
/* #line 2812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2812, __FILE__, __LINE__);
		    tree res;
		    res = captures[0];
		    return res;
		  }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_UNLE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 3238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_9 (loc, type, op0, op1, captures, UNLE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, UNLE_EXPR, LE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, UNLE_EXPR, UNGE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, UNLE_EXPR, UNGE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, UNLE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_UNGE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 3238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_9 (loc, type, op0, op1, captures, UNGE_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, UNGE_EXPR, GE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, UNGE_EXPR, UNLE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, UNGE_EXPR, UNLE_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, UNGE_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_UNEQ_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 3238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_9 (loc, type, op0, op1, captures, UNEQ_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, UNEQ_EXPR, EQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, UNEQ_EXPR, UNEQ_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, UNEQ_EXPR, UNEQ_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, UNEQ_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 3242 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_15 (loc, type, op0, op1, captures, UNLT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, UNLT_EXPR, LT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, UNLT_EXPR, UNGT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, UNLT_EXPR, UNGT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, UNLT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_UNGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 3242 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	tree res = generic_simplify_15 (loc, type, op0, op1, captures, UNGT_EXPR);
	if (res) return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, UNGT_EXPR, GT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, UNGT_EXPR, UNLT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, UNGT_EXPR, UNLT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, UNGT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const 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 3245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 3245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (!flag_trapping_math)
	  {
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3246, __FILE__, __LINE__);
	    tree res;
	    res =  constant_boolean_node (false, type);
	    if (TREE_SIDE_EFFECTS (captures[0]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	    return res;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, LTGT_EXPR, NE_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, LTGT_EXPR, LTGT_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, LTGT_EXPR, LTGT_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, LTGT_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, UNORDERED_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_ORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case FLOAT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case FLOAT_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
		tree res = generic_simplify_2 (loc, type, op0, op1, captures, ORDERED_EXPR, ORDERED_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    case NEGATE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	switch (TREE_CODE (op1))
	  {
	  case NEGATE_EXPR:
	    {
	      tree o40 = TREE_OPERAND (op1, 0);
	      {
/* #line 3723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
		tree res = generic_simplify_138 (loc, type, op0, op1, captures, ORDERED_EXPR, ORDERED_EXPR);
		if (res) return res;
	      }
	      break;
	    }
          default:;
          }
      if (CONSTANT_CLASS_P (op1))
	{
	  {
/* #line 3729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
	    tree res = generic_simplify_268 (loc, type, op0, op1, captures, ORDERED_EXPR, ORDERED_EXPR);
	    if (res) return res;
	  }
        }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  tree res = generic_simplify_29 (loc, type, op0, op1, captures, ORDERED_EXPR);
	  if (res) return res;
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_TRUTH_ORIF_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[5])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_TRUTH_OR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      switch (TREE_CODE (o31))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GE_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
					      const enum tree_code cmp = LE_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o21))
	  {
	  case POINTER_PLUS_EXPR:
	    {
	      tree o40 = TREE_OPERAND (o21, 0);
	      tree o41 = TREE_OPERAND (o21, 1);
	      switch (TREE_CODE (o41))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      case LT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  switch (TREE_CODE (o70))
			    {
			    case POINTER_PLUS_EXPR:
			      {
				tree o80 = TREE_OPERAND (o70, 0);
				tree o81 = TREE_OPERAND (o70, 1);
				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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		          break;
		        }
		      case GT_EXPR:
		        {
			  tree o70 = TREE_OPERAND (op1, 0);
			  tree o71 = TREE_OPERAND (op1, 1);
			  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
			    {
			      switch (TREE_CODE (o71))
			        {
				case POINTER_PLUS_EXPR:
				  {
				    tree o90 = TREE_OPERAND (o71, 0);
				    tree o91 = TREE_OPERAND (o71, 1);
				    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 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
					      const enum tree_code cmp = LT_EXPR;
/* #line 5340 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5347 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
						      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
							{
							  {
/* #line 5351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5353 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
							      if (cmp == LT_EXPR)
								{
								  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[6])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5354, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    tree ops1[1], res;
								    {
								      tree ops2[2], res;
								      ops2[0] =  swap_p ? captures[6] : captures[1];
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							      else
								{
								  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
								  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5358, __FILE__, __LINE__);
								  tree res_op0;
								  {
								    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);
									res = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
									ops2[0] = res;
								      }
								      ops2[1] =  swap_p ? captures[2] : captures[4];
								      res = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
								      ops1[0] = res;
								    }
								    if (TREE_TYPE (ops1[0]) != sizetype)
								      res = fold_build1_loc (loc, NOP_EXPR, sizetype, ops1[0]);
								    else
								      res = ops1[0];
								    res_op0 = res;
								  }
								  tree res_op1;
								  res_op1 =  rhs_tree;
								  tree res;
								  res = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
								  return res;
								}
							  }
							}
						  }
						}
					    }
					  }
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  return NULL_TREE;
}

tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree op0, tree op1)
{
  switch (code)
    {
    case PLUS_EXPR:
      return generic_simplify_PLUS_EXPR (loc, code, type, op0, op1);
    case POINTER_PLUS_EXPR:
      return generic_simplify_POINTER_PLUS_EXPR (loc, code, type, op0, op1);
    case MINUS_EXPR:
      return generic_simplify_MINUS_EXPR (loc, code, type, op0, op1);
    case BIT_IOR_EXPR:
      return generic_simplify_BIT_IOR_EXPR (loc, code, type, op0, op1);
    case BIT_XOR_EXPR:
      return generic_simplify_BIT_XOR_EXPR (loc, code, type, op0, op1);
    case POINTER_DIFF_EXPR:
      return generic_simplify_POINTER_DIFF_EXPR (loc, code, type, op0, op1);
    case MULT_EXPR:
      return generic_simplify_MULT_EXPR (loc, code, type, op0, op1);
    case TRUNC_DIV_EXPR:
      return generic_simplify_TRUNC_DIV_EXPR (loc, code, type, op0, op1);
    case CEIL_DIV_EXPR:
      return generic_simplify_CEIL_DIV_EXPR (loc, code, type, op0, op1);
    case FLOOR_DIV_EXPR:
      return generic_simplify_FLOOR_DIV_EXPR (loc, code, type, op0, op1);
    case ROUND_DIV_EXPR:
      return generic_simplify_ROUND_DIV_EXPR (loc, code, type, op0, op1);
    case EXACT_DIV_EXPR:
      return generic_simplify_EXACT_DIV_EXPR (loc, code, type, op0, op1);
    case RDIV_EXPR:
      return generic_simplify_RDIV_EXPR (loc, code, type, op0, op1);
    case LT_EXPR:
      return generic_simplify_LT_EXPR (loc, code, type, op0, op1);
    case LE_EXPR:
      return generic_simplify_LE_EXPR (loc, code, type, op0, op1);
    case GT_EXPR:
      return generic_simplify_GT_EXPR (loc, code, type, op0, op1);
    case GE_EXPR:
      return generic_simplify_GE_EXPR (loc, code, type, op0, op1);
    case CEIL_MOD_EXPR:
      return generic_simplify_CEIL_MOD_EXPR (loc, code, type, op0, op1);
    case FLOOR_MOD_EXPR:
      return generic_simplify_FLOOR_MOD_EXPR (loc, code, type, op0, op1);
    case ROUND_MOD_EXPR:
      return generic_simplify_ROUND_MOD_EXPR (loc, code, type, op0, op1);
    case TRUNC_MOD_EXPR:
      return generic_simplify_TRUNC_MOD_EXPR (loc, code, type, op0, op1);
    case EQ_EXPR:
      return generic_simplify_EQ_EXPR (loc, code, type, op0, op1);
    case NE_EXPR:
      return generic_simplify_NE_EXPR (loc, code, type, op0, op1);
    case LSHIFT_EXPR:
      return generic_simplify_LSHIFT_EXPR (loc, code, type, op0, op1);
    case BIT_AND_EXPR:
      return generic_simplify_BIT_AND_EXPR (loc, code, type, op0, op1);
    case MIN_EXPR:
      return generic_simplify_MIN_EXPR (loc, code, type, op0, op1);
    case MAX_EXPR:
      return generic_simplify_MAX_EXPR (loc, code, type, op0, op1);
    case LROTATE_EXPR:
      return generic_simplify_LROTATE_EXPR (loc, code, type, op0, op1);
    case RROTATE_EXPR:
      return generic_simplify_RROTATE_EXPR (loc, code, type, op0, op1);
    case RSHIFT_EXPR:
      return generic_simplify_RSHIFT_EXPR (loc, code, type, op0, op1);
    case COMPLEX_EXPR:
      return generic_simplify_COMPLEX_EXPR (loc, code, type, op0, op1);
    case UNLE_EXPR:
      return generic_simplify_UNLE_EXPR (loc, code, type, op0, op1);
    case UNGE_EXPR:
      return generic_simplify_UNGE_EXPR (loc, code, type, op0, op1);
    case UNEQ_EXPR:
      return generic_simplify_UNEQ_EXPR (loc, code, type, op0, op1);
    case UNLT_EXPR:
      return generic_simplify_UNLT_EXPR (loc, code, type, op0, op1);
    case UNGT_EXPR:
      return generic_simplify_UNGT_EXPR (loc, code, type, op0, op1);
    case LTGT_EXPR:
      return generic_simplify_LTGT_EXPR (loc, code, type, op0, op1);
    case UNORDERED_EXPR:
      return generic_simplify_UNORDERED_EXPR (loc, code, type, op0, op1);
    case ORDERED_EXPR:
      return generic_simplify_ORDERED_EXPR (loc, code, type, op0, op1);
    case TRUTH_ORIF_EXPR:
      return generic_simplify_TRUTH_ORIF_EXPR (loc, code, type, op0, op1);
    case TRUTH_OR_EXPR:
      return generic_simplify_TRUTH_OR_EXPR (loc, code, type, op0, op1);
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (real_zerop (o21))
	  {
	    if (real_onep (op1))
	      {
		if (real_minus_onep (op2))
		  {
		    {
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				if (TREE_TYPE (ops1[0]) != type)
				  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				else
				  res = ops1[0];
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    if (TREE_TYPE (ops1[0]) != type)
				      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				    else
				      res = ops1[0];
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (TREE_TYPE (ops1[0]) != type)
					  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					else
					  res = ops1[0];
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	    if (real_minus_onep (op1))
	      {
		if (real_onep (op2))
		  {
		    {
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	  }
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				      tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GT_EXPR);
				      if (res) return res;
				    }
				    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GT_EXPR);
				if (res) return res;
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (op1))
		      {
		      case PLUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GT_EXPR, PLUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      case MINUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GT_EXPR, MINUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GT_EXPR);
				if (res) return res;
			      }
			      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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
			  tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GT_EXPR);
			  if (res) return res;
			}
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (op1))
	        {
		case PLUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GT_EXPR, PLUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GT_EXPR, MINUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (real_zerop (o21))
	  {
	    if (real_onep (op1))
	      {
		if (real_minus_onep (op2))
		  {
		    {
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				if (TREE_TYPE (ops1[0]) != type)
				  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				else
				  res = ops1[0];
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    if (TREE_TYPE (ops1[0]) != type)
				      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				    else
				      res = ops1[0];
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (TREE_TYPE (ops1[0]) != type)
					  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					else
					  res = ops1[0];
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	    if (real_minus_onep (op1))
	      {
		if (real_onep (op2))
		  {
		    {
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	  }
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				      tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GE_EXPR);
				      if (res) return res;
				    }
				    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GE_EXPR);
				if (res) return res;
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (op1))
		      {
		      case PLUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GE_EXPR, PLUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      case MINUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GE_EXPR, MINUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GE_EXPR);
				if (res) return res;
			      }
			      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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
			  tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, GE_EXPR);
			  if (res) return res;
			}
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (op1))
	        {
		case PLUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GE_EXPR, PLUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, GE_EXPR, MINUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (real_zerop (o21))
	  {
	    if (real_onep (op1))
	      {
		if (real_minus_onep (op2))
		  {
		    {
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	    if (real_minus_onep (op1))
	      {
		if (real_onep (op2))
		  {
		    {
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				if (TREE_TYPE (ops1[0]) != type)
				  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				else
				  res = ops1[0];
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    if (TREE_TYPE (ops1[0]) != type)
				      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				    else
				      res = ops1[0];
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (TREE_TYPE (ops1[0]) != type)
					  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					else
					  res = ops1[0];
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	  }
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				      tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LT_EXPR);
				      if (res) return res;
				    }
				    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LT_EXPR);
				if (res) return res;
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (op1))
		      {
		      case PLUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LT_EXPR, PLUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      case MINUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LT_EXPR, MINUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LT_EXPR);
				if (res) return res;
			      }
			      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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
			  tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LT_EXPR);
			  if (res) return res;
			}
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (op1))
	        {
		case PLUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LT_EXPR, PLUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LT_EXPR, MINUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (real_zerop (o21))
	  {
	    if (real_onep (op1))
	      {
		if (real_minus_onep (op2))
		  {
		    {
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 226 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 230 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					res = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	    if (real_minus_onep (op1))
	      {
		if (real_onep (op2))
		  {
		    {
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
			{
/* #line 241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (types_match (type, float_type_node))
			    {
			      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
			      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
			      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__);
			      tree res_op0;
			      res_op0 = captures[1];
			      tree res_op1;
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				if (TREE_TYPE (ops1[0]) != type)
				  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				else
				  res = ops1[0];
				res_op1 = res;
			      }
			      tree res;
			      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
			      if (!res)
			        return NULL_TREE;
			      return res;
			    }
			  else
			    {
/* #line 243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (types_match (type, double_type_node))
				{
				  if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  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__);
				  tree res_op0;
				  res_op0 = captures[1];
				  tree res_op1;
				  {
				    tree ops1[1], res;
				    ops1[0] = captures[0];
				    if (TREE_TYPE (ops1[0]) != type)
				      res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				    else
				      res = ops1[0];
				    res_op1 = res;
				  }
				  tree res;
				  res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
				  if (!res)
				    return NULL_TREE;
				  return res;
				}
			      else
				{
/* #line 245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (types_match (type, long_double_type_node))
				    {
				      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (op1)) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      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__);
				      tree res_op0;
				      res_op0 = captures[1];
				      tree res_op1;
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (TREE_TYPE (ops1[0]) != type)
					  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
					else
					  res = ops1[0];
					res_op1 = res;
				      }
				      tree res;
				      res = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
				      if (!res)
				        return NULL_TREE;
				      return res;
				    }
				}
			    }
			}
		    }
		  }
	      }
	  }
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				      tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LE_EXPR);
				      if (res) return res;
				    }
				    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LE_EXPR);
				if (res) return res;
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    switch (TREE_CODE (op1))
		      {
		      case PLUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LE_EXPR, PLUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      case MINUS_EXPR:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  tree o61 = TREE_OPERAND (op1, 1);
			  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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
					    tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LE_EXPR, MINUS_EXPR);
					    if (res) return res;
					  }
				          break;
				        }
				      default:;
				      }
				    break;
				  }
			        default:;
			        }
			    }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LE_EXPR);
				if (res) return res;
			      }
			      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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
			  tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, LE_EXPR);
			  if (res) return res;
			}
		        break;
		      }
		    default:;
		    }
	        }
	      switch (TREE_CODE (op1))
	        {
		case PLUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LE_EXPR, PLUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
		case MINUS_EXPR:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    tree o51 = TREE_OPERAND (op1, 1);
		    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 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
				      tree res = generic_simplify_173 (loc, type, op0, op1, op2, captures, LE_EXPR, MINUS_EXPR);
				      if (res) return res;
				    }
				    break;
				  }
			        default:;
			        }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case INTEGER_CST:
      {
	{
/* #line 2878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 2878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (integer_zerop (captures[0]))
	    {
/* #line 2879 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type))
		{
		  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2880, __FILE__, __LINE__);
		  tree res;
		  res = captures[2];
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  return res;
		}
	    }
	  else
	    {
/* #line 2881 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type))
		{
		  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  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 res;
		  res = captures[1];
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  return res;
		}
	    }
	}
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  CASE_CONVERT:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      switch (TREE_CODE (o21))
	        {
		case INTEGER_CST:
		  {
		    switch (TREE_CODE (op1))
		      {
		      CASE_CONVERT:
		        {
			  tree o60 = TREE_OPERAND (op1, 0);
			  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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				      tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, EQ_EXPR);
				      if (res) return res;
				    }
				    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, EQ_EXPR);
				if (res) return res;
			      }
			      break;
			    }
		          default:;
		          }
		      }
		    break;
		  }
	        default:;
	        }
	      break;
	    }
          default:;
          }
	switch (TREE_CODE (o21))
	  {
	  case INTEGER_CST:
	    {
	      switch (TREE_CODE (op1))
	        {
		CASE_CONVERT:
		  {
		    tree o50 = TREE_OPERAND (op1, 0);
		    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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, EQ_EXPR);
				if (res) return res;
			      }
			      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 2909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
			  tree res = generic_simplify_110 (loc, type, op0, op1, op2, captures, EQ_EXPR);
			  if (res) return res;
			}
		        break;
		      }
		    default:;
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case COND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	tree o32 = TREE_OPERAND (op1, 2);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 3075 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 };
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3075, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res_op2;
	      res_op2 = captures[3];
	      tree res;
	      res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	      return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case COND_EXPR:
      {
	tree o40 = TREE_OPERAND (op2, 0);
	tree o41 = TREE_OPERAND (op2, 1);
	tree o42 = TREE_OPERAND (op2, 2);
	if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
	  {
	    {
/* #line 3078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 };
	      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3078, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res_op2;
	      res_op2 = captures[3];
	      tree res;
	      res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	      return res;
	    }
	  }
	{
/* #line 3086 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 };
/* #line 3086 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (inverse_conditions_p (captures[0], captures[2]))
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3087, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res_op2;
	      res_op2 = captures[3];
	      tree res;
	      res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	      return res;
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case COND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	tree o32 = TREE_OPERAND (op1, 2);
	{
/* #line 3090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 };
/* #line 3090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (inverse_conditions_p (captures[0], captures[1]))
	    {
	      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[3])) return NULL_TREE;
	      if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3091, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[3];
	      tree res_op2;
	      res_op2 = captures[4];
	      tree res;
	      res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	      return res;
	    }
	}
        break;
      }
    default:;
    }
  if ((op2 == op1 && ! TREE_SIDE_EFFECTS (op2)) || (operand_equal_p (op2, op1, 0) && types_match (op2, op1)))
    {
      {
/* #line 3096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3096, __FILE__, __LINE__);
	tree res;
	res = captures[1];
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    }
  switch (TREE_CODE (op0))
    {
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	switch (TREE_CODE (o20))
	  {
	  case BIT_AND_EXPR:
	    {
	      tree o30 = TREE_OPERAND (o20, 0);
	      tree o31 = TREE_OPERAND (o20, 1);
	      if (integer_pow2p (o31))
		{
		  if (integer_zerop (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case INTEGER_CST:
			  {
			    if (integer_zerop (op2))
			      {
				{
/* #line 3866 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
/* #line 3866 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (integer_pow2p (captures[2]))
				    {
				      {
/* #line 3867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 int shift = (wi::exact_log2 (wi::to_wide (captures[2])) - wi::exact_log2 (wi::to_wide (captures[1])));
/* #line 3871 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
					  if (shift > 0)
					    {
					      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
					      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3872, __FILE__, __LINE__);
					      tree res_op0;
					      {
						tree ops1[2], res;
						{
						  tree ops2[1], res;
						  ops2[0] = captures[0];
						  if (TREE_TYPE (ops2[0]) != type)
						    res = fold_build1_loc (loc, NOP_EXPR, type, ops2[0]);
						  else
						    res = ops2[0];
						  ops1[0] = res;
						}
						ops1[1] =  build_int_cst (integer_type_node, shift);
						res = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						res_op0 = res;
					      }
					      tree res_op1;
					      res_op1 = captures[2];
					      tree res;
					      res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					      return res;
					    }
					  else
					    {
					      if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
					      if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
					      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3874, __FILE__, __LINE__);
					      tree res_op0;
					      {
						tree ops1[1], res;
						{
						  tree ops2[2], res;
						  ops2[0] = captures[0];
						  ops2[1] =  build_int_cst (integer_type_node, -shift);
						  res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						  ops1[0] = res;
						}
						if (TREE_TYPE (ops1[0]) != type)
						  res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
						else
						  res = ops1[0];
						res_op0 = res;
					      }
					      tree res_op1;
					      res_op1 = captures[2];
					      tree res;
					      res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
					      return res;
					    }
				      }
				    }
				}
			      }
			    break;
			  }
		        default:;
		        }
		    }
	        }
	      break;
	    }
          default:;
          }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	if (integer_zerop (o21))
	  {
	    switch (TREE_CODE (op1))
	      {
	      case INTEGER_CST:
	        {
		  if (integer_zerop (op2))
		    {
		      {
/* #line 3897 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 3897 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			if (integer_pow2p (captures[1]) && !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
			  {
			    {
/* #line 3899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
 int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
/* #line 3902 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				if (shift >= 0)
				  {
				    if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				    if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				    if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3903, __FILE__, __LINE__);
				    tree res_op0;
				    {
				      tree ops1[1], res;
				      {
					tree ops2[2], res;
					ops2[0] = captures[0];
					ops2[1] =  build_int_cst (integer_type_node, shift);
					res = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					ops1[0] = res;
				      }
				      if (TREE_TYPE (ops1[0]) != type)
					res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				      else
				        res = ops1[0];
				      res_op0 = res;
				    }
				    tree res_op1;
				    res_op1 = captures[1];
				    tree res;
				    res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
				    return res;
				  }
				else
				  {
				    if (TREE_SIDE_EFFECTS (op0)) return NULL_TREE;
				    if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
				    if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3908, __FILE__, __LINE__);
				    tree res_op0;
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[0];
				      if (TREE_TYPE (ops1[0]) != type)
					res = fold_build1_loc (loc, NOP_EXPR, type, ops1[0]);
				      else
				        res = ops1[0];
				      res_op0 = res;
				    }
				    tree res_op1;
				    res_op1 = captures[1];
				    tree res;
				    res = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
				    return res;
				  }
			    }
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (tree_logical_inverted_value (op0, op0_pops))
    {
      tree o20 = op0_pops[0];
      if (tree_truth_valued_p (o20))
	{
	  {
/* #line 3101 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
	    if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
	    if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3101, __FILE__, __LINE__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res_op1;
	    res_op1 = captures[2];
	    tree res_op2;
	    res_op2 = captures[1];
	    tree res;
	    res = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
	    return res;
	  }
        }
}
}
  return NULL_TREE;
}

static tree
generic_simplify_VEC_COND_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case VECTOR_CST:
      {
	{
/* #line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (integer_all_onesp (captures[0]))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2886, __FILE__, __LINE__);
	      tree res;
	      res = captures[1];
	      if (TREE_SIDE_EFFECTS (captures[0]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	  else
	    {
/* #line 2887 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      if (integer_zerop (captures[0]))
		{
		  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 res;
		  res = captures[2];
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  if (TREE_SIDE_EFFECTS (captures[1]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		  return res;
		}
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case VEC_COND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	tree o32 = TREE_OPERAND (op1, 2);
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 3075 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3075, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res_op2;
	      res_op2 = captures[3];
	      tree res;
	      res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case VEC_COND_EXPR:
      {
	tree o40 = TREE_OPERAND (op2, 0);
	tree o41 = TREE_OPERAND (op2, 1);
	tree o42 = TREE_OPERAND (op2, 2);
	if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
	  {
	    {
/* #line 3078 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3078, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res_op2;
	      res_op2 = captures[3];
	      tree res;
	      res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	  }
	{
/* #line 3086 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 };
/* #line 3086 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (inverse_conditions_p (captures[0], captures[2]))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3087, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[1];
	      tree res_op2;
	      res_op2 = captures[3];
	      tree res;
	      res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      if (TREE_SIDE_EFFECTS (captures[4]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), res);
	      return res;
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case VEC_COND_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	tree o31 = TREE_OPERAND (op1, 1);
	tree o32 = TREE_OPERAND (op1, 2);
	{
/* #line 3090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 };
/* #line 3090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  if (inverse_conditions_p (captures[0], captures[1]))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3091, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[3];
	      tree res_op2;
	      res_op2 = captures[4];
	      tree res;
	      res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
	      if (TREE_SIDE_EFFECTS (captures[1]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	      if (TREE_SIDE_EFFECTS (captures[2]))
		res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	      return res;
	    }
	}
        break;
      }
    default:;
    }
  if ((op2 == op1 && ! TREE_SIDE_EFFECTS (op2)) || (operand_equal_p (op2, op1, 0) && types_match (op2, op1)))
    {
      {
/* #line 3096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3096, __FILE__, __LINE__);
	tree res;
	res = captures[1];
	if (TREE_SIDE_EFFECTS (captures[0]))
	  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
	return res;
      }
    }
  {
    tree op0_pops[1];
    if (tree_logical_inverted_value (op0, op0_pops))
      {
	tree o20 = op0_pops[0];
	if (tree_truth_valued_p (o20))
	  {
	    {
/* #line 3101 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3101, __FILE__, __LINE__);
	      tree res_op0;
	      res_op0 = captures[0];
	      tree res_op1;
	      res_op1 = captures[2];
	      tree res_op2;
	      res_op2 = captures[1];
	      tree res;
	      res = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
	      return res;
	    }
	  }
}
  }
  switch (TREE_CODE (op1))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o30))
	      {
	      case CFN_COND_ADD:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_ADD);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_SUB:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_SUB);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MUL:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MUL);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_DIV:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_DIV);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MOD:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MOD);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_RDIV:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_RDIV);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MIN:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MIN);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MAX:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MAX);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_AND:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_AND);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_IOR:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_IOR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_XOR:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
			tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_XOR);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_COND_ADD:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_ADD);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_SUB:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_SUB);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_MUL:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MUL);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_DIV:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_DIV);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_MOD:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MOD);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_RDIV:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_RDIV);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_MIN:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MIN);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_MAX:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_MAX);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_AND:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_AND);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_IOR:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_IOR);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_XOR:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
		  tree res = generic_simplify_310 (loc, type, op0, op1, op2, captures, CFN_COND_XOR);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o40 = TREE_OPERAND (op2, 0);
	switch (TREE_CODE (o40))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o40))
	      {
	      case CFN_COND_ADD:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_ADD);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_SUB:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_SUB);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_MUL:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MUL);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_DIV:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_DIV);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_MOD:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MOD);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_RDIV:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_RDIV);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_MIN:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MIN);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_MAX:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MAX);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_AND:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_AND);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_IOR:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_IOR);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_XOR:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
		    tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_XOR);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op2))
        {
	case CFN_COND_ADD:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_ADD);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_SUB:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_SUB);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_MUL:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MUL);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_DIV:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_DIV);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_MOD:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MOD);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_RDIV:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_RDIV);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_MIN:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MIN);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_MAX:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_MAX);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_AND:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_AND);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_IOR:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_IOR);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_XOR:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    {
/* #line 5286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
	      tree res = generic_simplify_187 (loc, type, op0, op1, op2, captures, CFN_COND_XOR);
	      if (res) return res;
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o30 = TREE_OPERAND (op1, 0);
	switch (TREE_CODE (o30))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o30))
	      {
	      case CFN_COND_FMA:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  tree o44 = CALL_EXPR_ARG (o30, 4);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
			tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FMA);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_FMS:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  tree o44 = CALL_EXPR_ARG (o30, 4);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
			tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FMS);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_FNMA:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  tree o44 = CALL_EXPR_ARG (o30, 4);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
			tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FNMA);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      case CFN_COND_FNMS:
	        {
		  tree o40 = CALL_EXPR_ARG (o30, 0);
		  tree o41 = CALL_EXPR_ARG (o30, 1);
		  tree o42 = CALL_EXPR_ARG (o30, 2);
		  tree o43 = CALL_EXPR_ARG (o30, 3);
		  tree o44 = CALL_EXPR_ARG (o30, 4);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
			tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FNMS);
			if (res) return res;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op1))
        {
	case CFN_COND_FMA:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    tree o34 = CALL_EXPR_ARG (op1, 4);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
		  tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FMA);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_FMS:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    tree o34 = CALL_EXPR_ARG (op1, 4);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
		  tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FMS);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_FNMA:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    tree o34 = CALL_EXPR_ARG (op1, 4);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
		  tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FNMA);
		  if (res) return res;
		}
	      }
	    break;
	  }
	case CFN_COND_FNMS:
	  {
	    tree o30 = CALL_EXPR_ARG (op1, 0);
	    tree o31 = CALL_EXPR_ARG (op1, 1);
	    tree o32 = CALL_EXPR_ARG (op1, 2);
	    tree o33 = CALL_EXPR_ARG (op1, 3);
	    tree o34 = CALL_EXPR_ARG (op1, 4);
	    if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	      {
		{
/* #line 5295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
		  tree res = generic_simplify_223 (loc, type, op0, op1, op2, captures, CFN_COND_FNMS);
		  if (res) return res;
		}
	      }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case VIEW_CONVERT_EXPR:
      {
	tree o40 = TREE_OPERAND (op2, 0);
	switch (TREE_CODE (o40))
	  {
	  case CALL_EXPR:
	    switch (get_call_combined_fn (o40))
	      {
	      case CFN_COND_FMA:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  tree o54 = CALL_EXPR_ARG (o40, 4);
		  {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
		    tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FMA);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_FMS:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  tree o54 = CALL_EXPR_ARG (o40, 4);
		  {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
		    tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FMS);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_FNMA:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  tree o54 = CALL_EXPR_ARG (o40, 4);
		  {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
		    tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FNMA);
		    if (res) return res;
		  }
	          break;
	        }
	      case CFN_COND_FNMS:
	        {
		  tree o50 = CALL_EXPR_ARG (o40, 0);
		  tree o51 = CALL_EXPR_ARG (o40, 1);
		  tree o52 = CALL_EXPR_ARG (o40, 2);
		  tree o53 = CALL_EXPR_ARG (o40, 3);
		  tree o54 = CALL_EXPR_ARG (o40, 4);
		  {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
		    tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FNMS);
		    if (res) return res;
		  }
	          break;
	        }
	      default:;
	      }
	    break;
          default:;
          }
        break;
      }
    case CALL_EXPR:
      switch (get_call_combined_fn (op2))
        {
	case CFN_COND_FMA:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    tree o44 = CALL_EXPR_ARG (op2, 4);
	    {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
	      tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FMA);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_FMS:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    tree o44 = CALL_EXPR_ARG (op2, 4);
	    {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
	      tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FMS);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_FNMA:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    tree o44 = CALL_EXPR_ARG (op2, 4);
	    {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
	      tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FNMA);
	      if (res) return res;
	    }
	    break;
	  }
	case CFN_COND_FNMS:
	  {
	    tree o40 = CALL_EXPR_ARG (op2, 0);
	    tree o41 = CALL_EXPR_ARG (op2, 1);
	    tree o42 = CALL_EXPR_ARG (op2, 2);
	    tree o43 = CALL_EXPR_ARG (op2, 3);
	    tree o44 = CALL_EXPR_ARG (op2, 4);
	    {
/* #line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	      tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
	      tree res = generic_simplify_107 (loc, type, op0, op1, op2, captures, CFN_COND_FNMS);
	      if (res) return res;
	    }
	    break;
	  }
	default:;
        }
      break;
    default:;
    }
  return NULL_TREE;
}

static tree
generic_simplify_BIT_FIELD_REF (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case BIT_FIELD_REF:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	tree o22 = TREE_OPERAND (op0, 2);
	{
/* #line 5015 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[5] ATTRIBUTE_UNUSED = { o20, o21, o22, op1, op2 };
	  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
	  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5015, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[3];
	  tree res_op2;
	  res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
	  tree res;
	  res = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
	  if (TREE_SIDE_EFFECTS (captures[1]))
	    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	  return res;
	}
        break;
      }
    case VIEW_CONVERT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	{
/* #line 5019 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5019, __FILE__, __LINE__);
	  tree res_op0;
	  res_op0 = captures[0];
	  tree res_op1;
	  res_op1 = captures[1];
	  tree res_op2;
	  res_op2 = captures[2];
	  tree res;
	  res = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
	  return res;
	}
        break;
      }
    default:;
    }
  if (integer_zerop (op2))
    {
      {
/* #line 5023 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 5023 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0]))))
	  {
	    if (TREE_SIDE_EFFECTS (op2)) return NULL_TREE;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5024, __FILE__, __LINE__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	    if (TREE_SIDE_EFFECTS (captures[1]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	    return res;
	  }
      }
    }
  {
/* #line 5029 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 5029 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (integer_zerop (captures[2]))
	  {
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5033, __FILE__, __LINE__);
	    tree res_op0;
	    {
	      tree ops1[1], res;
	      ops1[0] = captures[0];
	      res = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	      res_op0 = res;
	    }
	    tree res;
	    res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
	    if (TREE_SIDE_EFFECTS (captures[1]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	    if (TREE_SIDE_EFFECTS (captures[2]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	    return res;
	  }
	else
	  {
/* #line 5034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	    if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
	      {
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5035, __FILE__, __LINE__);
		tree res_op0;
		{
		  tree ops1[1], res;
		  ops1[0] = captures[0];
		  res = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
		  res_op0 = res;
		}
		tree res;
		res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
		if (TREE_SIDE_EFFECTS (captures[1]))
		  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		if (TREE_SIDE_EFFECTS (captures[2]))
		  res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		return res;
	      }
	  }
      }
    else
      {
/* #line 5036 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (type) && (!0 || 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)))
	  {
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5053, __FILE__, __LINE__);
	    tree res_op0;
	    res_op0 = captures[0];
	    tree res;
	    res = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
	    if (TREE_SIDE_EFFECTS (captures[1]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
	    if (TREE_SIDE_EFFECTS (captures[2]))
	      res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
	    return res;
	  }
      }
  }
  switch (TREE_CODE (op0))
    {
    case CONSTRUCTOR:
      {
	{
/* #line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5063 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
		  if (n != 0 && (idx % width) == 0 && (n % width) == 0 && known_le ((idx + n) / width, TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor))))
		    {
		      {
/* #line 5077 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5093 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			  if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count))
			    {
/* #line 5094 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (CONSTRUCTOR_NELTS (ctor) == 0)
				{
				  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				  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__);
				  tree res;
				  res =  build_constructor (type, NULL);
				  return res;
				}
			      else
				{
/* #line 5096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (count == 1)
				    {
/* #line 5097 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (elt < CONSTRUCTOR_NELTS (ctor))
					{
					  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5098, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
					  tree res;
					  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
					  return res;
					}
				      else
					{
					  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5099, __FILE__, __LINE__);
					  tree res;
					  res =  build_zero_cst (type);
					  return res;
					}
				    }
				  else
				    {
				      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5100, __FILE__, __LINE__);
				      tree res;
 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);
				      res =  build_constructor (type, vals);
				      return res;
				    }
				}
			    }
			  else
			    {
/* #line 5110 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
			      if (k.is_constant (&const_k) && idx + n <= (idx / const_k + 1) * const_k)
				{
/* #line 5113 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				  if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k)
				    {
				      if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
				      if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5114, __FILE__, __LINE__);
				      tree res;
				      res =  build_zero_cst (type);
				      return res;
				    }
				  else
				    {
/* #line 5115 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
				      if (n == const_k)
					{
					  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5116, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
					  tree res;
					  res = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
					  return res;
					}
				      else
					{
					  if (TREE_SIDE_EFFECTS (captures[0])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[1])) return NULL_TREE;
					  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5117, __FILE__, __LINE__);
					  tree res_op0;
					  res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
					  tree res_op1;
					  res_op1 = captures[1];
					  tree res_op2;
					  res_op2 =  bitsize_int ((idx % const_k) * width);
					  tree res;
					  res = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
					  return res;
					}
				    }
				}
			    }
		      }
		    }
	      }
	    }
	}
        break;
      }
    case BIT_INSERT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	tree o21 = TREE_OPERAND (op0, 1);
	tree o22 = TREE_OPERAND (op0, 2);
	{
/* #line 5125 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/match.pd" */
	  tree captures[5] ATTRIBUTE_UNUSED = { o20, o21, o22, op1, op2 };
	  {
/* #line 5125 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 5134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		{
		  if (TREE_SIDE_EFFECTS (captures[2])) return NULL_TREE;
		  if (TREE_SIDE_EFFECTS (captures[4])) return NULL_TREE;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5137, __FILE__, __LINE__);
		  tree res_op0;
		  res_op0 = captures[1];
		  tree res_op1;
		  res_op1 = captures[3];
		  tree res_op2;
		  res_op2 =  wide_int_to_tree (bitsizetype, wi::to_wide (captures[4]) - wi::to_wide (captures[2]));
		  tree res;
		  res = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
		  if (TREE_SIDE_EFFECTS (captures[0]))
		    res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), res);
		  return res;
		}
	      else
		{
/* #line 5140 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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))
		    {
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5144, __FILE__, __LINE__);
		      tree res_op0;
		      res_op0 = captures[0];
		      tree res_op1;
		      res_op1 = captures[3];
		      tree res_op2;
		      res_op2 = captures[4];
		      tree res;
		      res = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
		      if (TREE_SIDE_EFFECTS (captures[1]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), res);
		      if (TREE_SIDE_EFFECTS (captures[2]))
			res = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), res);
		      return res;
		    }
		}
	  }
	}
        break;
      }
    default:;
    }
  return NULL_TREE;
}

tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree op0, tree op1, tree op2)
{
  switch (code)
    {
    case COND_EXPR:
      return generic_simplify_COND_EXPR (loc, code, type, op0, op1, op2);
    case VEC_COND_EXPR:
      return generic_simplify_VEC_COND_EXPR (loc, code, type, op0, op1, op2);
    case BIT_FIELD_REF:
      return generic_simplify_BIT_FIELD_REF (loc, code, type, op0, op1, op2);
    default:;
    }
  return NULL_TREE;
}

tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree op0, tree op1, tree op2, tree op3)
{
  switch (code)
    {
    default:;
    }
  return NULL_TREE;
}

tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree op0, tree op1, tree op2, tree op3, tree op4)
{
  switch (code)
    {
    default:;
    }
  return NULL_TREE;
}
