Projet_SETI_RISC-V/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc/generic-match.cc

92091 lines
2.7 MiB

/* Generated automatically by the program `genmatch' from
a IL pattern matching and simplification description. */
#include "generic-match-head.cc"
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 _p0 = TREE_OPERAND (t, 0);
{
/* #line 148 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 148 "/home/seti/riscv-gnu-toolchain/gcc/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", 146, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail1:;
}
}
break;
}
case VIEW_CONVERT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
{
/* #line 151 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 151 "/home/seti/riscv-gnu-toolchain/gcc/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", 149, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail2:;
}
}
break;
}
default:;
}
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 704 "/home/seti/riscv-gnu-toolchain/gcc/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", 704, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail3:;
}
break;
}
case LSHIFT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
switch (TREE_CODE (_p0))
{
case INTEGER_CST:
{
{
/* #line 706 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 706, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail4:;
}
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 1562 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
/* #line 1562 "/home/seti/riscv-gnu-toolchain/gcc/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", 1561, __FILE__, __LINE__);
{
return true;
}
next_after_fail5:;
}
}
break;
}
case FIXED_CST:
{
{
/* #line 1567 "/home/seti/riscv-gnu-toolchain/gcc/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", 1567, __FILE__, __LINE__);
{
return true;
}
next_after_fail6:;
}
break;
}
case NEGATE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
{
/* #line 1570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 1570 "/home/seti/riscv-gnu-toolchain/gcc/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", 1569, __FILE__, __LINE__);
{
return true;
}
next_after_fail7:;
}
}
break;
}
case REAL_CST:
{
{
/* #line 1573 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
/* #line 1573 "/home/seti/riscv-gnu-toolchain/gcc/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", 1572, __FILE__, __LINE__);
{
return true;
}
next_after_fail8:;
}
}
break;
}
case VECTOR_CST:
{
{
/* #line 1578 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
/* #line 1578 "/home/seti/riscv-gnu-toolchain/gcc/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", 1577, __FILE__, __LINE__);
{
return true;
}
next_after_fail9:;
}
}
break;
}
case MINUS_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1581 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 1581 "/home/seti/riscv-gnu-toolchain/gcc/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", 1580, __FILE__, __LINE__);
{
return true;
}
next_after_fail10:;
}
}
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 1754 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 1754 "/home/seti/riscv-gnu-toolchain/gcc/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", 1753, __FILE__, __LINE__);
{
return true;
}
next_after_fail11:;
}
}
switch (TREE_CODE (t))
{
case LT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail12:;
}
break;
}
case LE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail13:;
}
break;
}
case EQ_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail14:;
}
break;
}
case NE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail15:;
}
break;
}
case GE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail16:;
}
break;
}
case GT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail17:;
}
break;
}
case UNORDERED_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail18:;
}
break;
}
case ORDERED_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail19:;
}
break;
}
case UNLT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail20:;
}
break;
}
case UNLE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail21:;
}
break;
}
case UNGT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail22:;
}
break;
}
case UNGE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail23:;
}
break;
}
case UNEQ_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail24:;
}
break;
}
case LTGT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail25:;
}
break;
}
case TRUTH_AND_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail26:;
}
break;
}
case TRUTH_ANDIF_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail27:;
}
break;
}
case TRUTH_OR_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail28:;
}
break;
}
case TRUTH_ORIF_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail29:;
}
break;
}
case TRUTH_XOR_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 1757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1757, __FILE__, __LINE__);
{
return true;
}
next_after_fail30:;
}
break;
}
case TRUTH_NOT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
{
/* #line 1759 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1759, __FILE__, __LINE__);
{
return true;
}
next_after_fail31:;
}
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 _p0 = TREE_OPERAND (t, 0);
{
/* #line 1761 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1761, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail32:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
if (tree_truth_valued_p (_p0))
{
{
/* #line 1763 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1763, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail33:;
}
}
break;
}
case EQ_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
if (integer_zerop (_p1))
{
{
/* #line 1765 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1765, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail34:;
}
}
break;
}
case NE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
if (tree_truth_valued_p (_p0))
{
if (integer_truep (_p1))
{
{
/* #line 1767 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1767, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail35:;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
if (tree_truth_valued_p (_p0))
{
if (integer_truep (_p1))
{
{
/* #line 1769 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1769, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail36:;
}
}
}
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 2116 "/home/seti/riscv-gnu-toolchain/gcc/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", 2116, __FILE__, __LINE__);
{
return true;
}
next_after_fail37:;
}
break;
}
case SSA_NAME:
{
{
/* #line 2119 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 2119 "/home/seti/riscv-gnu-toolchain/gcc/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", 2118, __FILE__, __LINE__);
{
return true;
}
next_after_fail38:;
}
}
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 _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
if (tree_with_possible_nonzero_bits (_p0))
{
{
/* #line 2123 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2123, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail39:;
}
}
if (tree_with_possible_nonzero_bits (_p1))
{
{
/* #line 2123 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2123, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail40:;
}
}
break;
}
default:;
}
if (tree_with_possible_nonzero_bits (t))
{
{
/* #line 2121 "/home/seti/riscv-gnu-toolchain/gcc/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", 2121, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail41:;
}
}
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 2128 "/home/seti/riscv-gnu-toolchain/gcc/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", 2128, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail42:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 2130 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2130, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
return true;
}
next_after_fail43:;
}
break;
}
default:;
}
break;
}
default:;
}
return false;
}
bool
tree_min_value (tree t)
{
const tree type = TREE_TYPE (t);
if (TREE_SIDE_EFFECTS (t)) return false;
switch (TREE_CODE (t))
{
case INTEGER_CST:
{
{
/* #line 2296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
/* #line 2296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& wi::eq_p (wi::to_wide (t), wi::min_value (type))
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2295, __FILE__, __LINE__);
{
return true;
}
next_after_fail44:;
}
}
break;
}
default:;
}
return false;
}
bool
tree_max_value (tree t)
{
const tree type = TREE_TYPE (t);
if (TREE_SIDE_EFFECTS (t)) return false;
switch (TREE_CODE (t))
{
case INTEGER_CST:
{
{
/* #line 2301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
/* #line 2301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& wi::eq_p (wi::to_wide (t), wi::max_value (type))
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2300, __FILE__, __LINE__);
{
return true;
}
next_after_fail45:;
}
}
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 _p0 = TREE_OPERAND (t, 0);
switch (TREE_CODE (_p0))
{
case COMPLEX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3914 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 3914, __FILE__, __LINE__);
{
return true;
}
next_after_fail46:;
}
break;
}
default:;
}
break;
}
case COMPLEX_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
{
/* #line 3914 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 3914, __FILE__, __LINE__);
{
return true;
}
next_after_fail47:;
}
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 6396 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 6396 "/home/seti/riscv-gnu-toolchain/gcc/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", 6395, __FILE__, __LINE__);
{
return true;
}
next_after_fail48:;
}
}
return false;
}
bool
tree_float_value_p (tree t)
{
const tree type = TREE_TYPE (t);
if (TREE_SIDE_EFFECTS (t)) return false;
{
/* #line 6417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 6417 "/home/seti/riscv-gnu-toolchain/gcc/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", 6416, __FILE__, __LINE__);
{
return true;
}
next_after_fail49:;
}
}
return false;
}
bool
tree_vec_same_elem_p (tree t)
{
const tree type = TREE_TYPE (t);
if (TREE_SIDE_EFFECTS (t)) return false;
switch (TREE_CODE (t))
{
case VEC_DUPLICATE_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
{
/* #line 7710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7710, __FILE__, __LINE__);
{
return true;
}
next_after_fail50:;
}
break;
}
case CONSTRUCTOR:
{
{
/* #line 7714 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 7714 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[0]) == SSA_NAME
&& uniform_vector_p (gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])))
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7713, __FILE__, __LINE__);
{
return true;
}
next_after_fail51:;
}
}
break;
}
default:;
}
{
/* #line 7719 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 7719 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (uniform_vector_p (captures[0])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7718, __FILE__, __LINE__);
{
return true;
}
next_after_fail52:;
}
}
return false;
}
bool
tree_ctz_table_index (tree t, tree *res_ops)
{
const tree type = TREE_TYPE (t);
if (TREE_SIDE_EFFECTS (t)) return false;
switch (TREE_CODE (t))
{
case RSHIFT_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q31 == _q40 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q40, 0) && types_match (_q31, _q40)))
{
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7742 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q21, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7742, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
return true;
}
next_after_fail53:;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
{
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7742 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p1 };
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7742, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
return true;
}
next_after_fail54:;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
return false;
}
bool
tree_cond_expr_convert_p (tree t, tree *res_ops)
{
const tree type = TREE_TYPE (t);
if (TREE_SIDE_EFFECTS (t)) return false;
switch (TREE_CODE (t))
{
case COND_EXPR:
{
tree _p0 = TREE_OPERAND (t, 0);
tree _p1 = TREE_OPERAND (t, 1);
tree _p2 = TREE_OPERAND (t, 2);
switch (TREE_CODE (_p0))
{
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_p2))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p2, 0);
{
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _q20, _q50, _q70, _p0, _q21, _p1, _p2 };
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (type) != TYPE_PRECISION (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
|| (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
== TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
&& single_use (captures[5])
&& single_use (captures[6])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7745, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
res_ops[3] = captures[3];
return true;
}
next_after_fail55:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_p2))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p2, 0);
{
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _q20, _q50, _q70, _p0, _q21, _p1, _p2 };
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (type) != TYPE_PRECISION (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
|| (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
== TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
&& single_use (captures[5])
&& single_use (captures[6])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7745, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
res_ops[3] = captures[3];
return true;
}
next_after_fail56:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_p2))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p2, 0);
{
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _q20, _q50, _q70, _p0, _q21, _p1, _p2 };
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (type) != TYPE_PRECISION (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
|| (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
== TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
&& single_use (captures[5])
&& single_use (captures[6])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7745, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
res_ops[3] = captures[3];
return true;
}
next_after_fail57:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_p2))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p2, 0);
{
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _q20, _q50, _q70, _p0, _q21, _p1, _p2 };
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (type) != TYPE_PRECISION (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
|| (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
== TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
&& single_use (captures[5])
&& single_use (captures[6])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7745, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
res_ops[3] = captures[3];
return true;
}
next_after_fail58:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_p2))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p2, 0);
{
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _q20, _q50, _q70, _p0, _q21, _p1, _p2 };
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (type) != TYPE_PRECISION (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
|| (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
== TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
&& single_use (captures[5])
&& single_use (captures[6])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7745, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
res_ops[3] = captures[3];
return true;
}
next_after_fail59:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_p2))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p2, 0);
{
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _q20, _q50, _q70, _p0, _q21, _p1, _p2 };
/* #line 7747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (type) != TYPE_PRECISION (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[0]))
== TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
|| (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
== TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
&& single_use (captures[5])
&& single_use (captures[6])
)
{
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 7745, __FILE__, __LINE__);
{
res_ops[0] = captures[0];
res_ops[1] = captures[1];
res_ops[2] = captures[2];
res_ops[3] = captures[3];
return true;
}
next_after_fail60:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
return false;
}
static tree
generic_simplify_1 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/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 5335 "/home/seti/riscv-gnu-toolchain/gcc/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 5345 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[2]) == INTEGER_CST
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail61;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail61;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5346, __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 _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail61:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail62;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5348, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
_r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail62:;
}
}
else
{
/* #line 5350 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
)
{
/* #line 5352 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail63;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5364, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
_r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail63:;
}
else
{
/* #line 5365 "/home/seti/riscv-gnu-toolchain/gcc/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 5368 "/home/seti/riscv-gnu-toolchain/gcc/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 5375 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (above || below
)
{
/* #line 5376 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR || cmp == NE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail64;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5377, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail64:;
}
else
{
/* #line 5378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR || cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail65;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5379, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (above ? true : false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail65:;
}
else
{
/* #line 5380 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR || cmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail66;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5381, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (above ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail66:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_2 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail67;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail67;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1068, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail67:;
return NULL_TREE;
}
static tree
generic_simplify_3 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& ssa_name_has_boolean_range (captures[1])
&& !flag_non_call_exceptions
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail68;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 411, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail68:;
}
return NULL_TREE;
}
static tree
generic_simplify_4 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail69;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3835, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail69:;
return NULL_TREE;
}
static tree
generic_simplify_5 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2833 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TYPE_OVERFLOW_UNDEFINED (type)
&& element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
)
{
{
/* #line 2836 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail70;
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 _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail70:;
}
}
else
{
/* #line 2838 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail71;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2848, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail71:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_6 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail72;
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 _r;
_r = captures[0];
return _r;
}
next_after_fail72:;
return NULL_TREE;
}
static tree
generic_simplify_7 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (SIGNBIT))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail73;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6795, __FILE__, __LINE__);
{
tree _r;
_r = integer_zero_node;
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail73:;
return NULL_TREE;
}
static tree
generic_simplify_8 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2615 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (type)
&& !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail74;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2617, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail74:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_9 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const combined_fn ARG_UNUSED (ffs))
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
/* #line 7318 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail75;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7319, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail75:;
}
else
{
/* #line 7320 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) > prec
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail76;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7321, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR ? true : false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail76:;
}
else
{
/* #line 7322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail77;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail77;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7323, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
wi::mask (tree_to_uhwi (captures[2]),
false, prec));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
wi::shifted_mask (tree_to_uhwi (captures[2]) - 1, 1,
false, prec));
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail77:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_10 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (outer_op), const enum tree_code ARG_UNUSED (inner_op))
{
/* #line 217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_zerop (captures[2])
&& real_zerop (captures[3])
&& !HONOR_SIGN_DEPENDENT_ROUNDING (type)
)
{
{
/* #line 220 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool inner_plus = ((inner_op == PLUS_EXPR)
^ REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[2])));
bool outer_plus
= ((outer_op == PLUS_EXPR)
^ REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[3])));
/* #line 225 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (outer_plus && !inner_plus
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail78;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 226, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail78:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail79;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail79;
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 _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail79:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_11 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
&& !TYPE_OVERFLOW_SANITIZED (type)
)
{
{
/* #line 2525 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail80;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != t1)
_r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != t1)
_r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail80:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_12 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (SIGNBIT))
{
/* #line 6800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail81;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
_r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail81:;
}
return NULL_TREE;
}
static tree
generic_simplify_13 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2769 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_TRAPS (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail82;
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 _r;
_r = build_all_ones_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail82:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off0, off1;
tree base0, base1;
int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
off0, off1,
1
);
/* #line 5597 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 1
)
{
/* #line 5599 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail83;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail83;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail83;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5600, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_eq (off0, off1), type);
return _r;
}
next_after_fail83:;
}
else
{
/* #line 5601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail84;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail84;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail84;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5602, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_ne (off0, off1), type);
return _r;
}
next_after_fail84:;
}
else
{
/* #line 5603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail85;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail85;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail85;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5604, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_lt (off0, off1), type);
return _r;
}
next_after_fail85:;
}
else
{
/* #line 5605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail86;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail86;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail86;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5606, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_le (off0, off1), type);
return _r;
}
next_after_fail86:;
}
else
{
/* #line 5607 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail87;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail87;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail87;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5608, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_ge (off0, off1), type);
return _r;
}
next_after_fail87:;
}
else
{
/* #line 5609 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail88;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail88;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail88;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5610, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_gt (off0, off1), type);
return _r;
}
next_after_fail88:;
}
}
}
}
}
}
}
else
{
/* #line 5611 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 0
)
{
/* #line 5613 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail89;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail89;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail89;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5614, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
return _r;
}
next_after_fail89:;
}
else
{
/* #line 5615 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail90;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail90;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail90;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5616, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
return _r;
}
next_after_fail90:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_15 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1874 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail91;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1877, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail91:;
}
return NULL_TREE;
}
static tree
generic_simplify_16 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& integer_nonzerop (captures[2])
&& !TREE_OVERFLOW (captures[2])
&& !TREE_OVERFLOW (captures[3])
)
{
{
/* #line 1940 "/home/seti/riscv-gnu-toolchain/gcc/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 1944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == LT_EXPR || code == GE_EXPR
)
{
/* #line 1945 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_OVERFLOW (lo)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail92;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail92;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail92;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1946, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, (code == LT_EXPR) ^ neg_overflow);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail92:;
}
else
{
/* #line 1947 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail93;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail93;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail93;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1948, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = lo;
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail93:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail94;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail94;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail94;
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[1];
tree res_op1;
res_op1 = lo;
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail94:;
}
}
}
else
{
/* #line 1950 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == LE_EXPR || code == GT_EXPR
)
{
/* #line 1951 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_OVERFLOW (hi)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail95;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail95;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail95;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1952, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, (code == LE_EXPR) ^ neg_overflow);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail95:;
}
else
{
/* #line 1953 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == LE_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail96;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail96;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail96;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1954, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = hi;
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail96:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail97;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail97;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail97;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1955, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = hi;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail97:;
}
}
}
else
{
/* #line 1956 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!lo && !hi
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail98;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail98;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail98;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1957, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, code == NE_EXPR);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail98:;
}
else
{
/* #line 1958 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == EQ_EXPR && !hi
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail99;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail99;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail99;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1959, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = lo;
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail99:;
}
else
{
/* #line 1960 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == EQ_EXPR && !lo
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail100;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail100;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail100;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1961, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = hi;
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail100:;
}
else
{
/* #line 1962 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == NE_EXPR && !hi
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail101;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail101;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail101;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1963, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = lo;
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail101:;
}
else
{
/* #line 1964 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == NE_EXPR && !lo
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail102;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail102;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail102;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1965, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = hi;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail102:;
}
else
{
/* #line 1966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (1
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail103;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail103;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail103;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail103;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1967, __FILE__, __LINE__);
{
tree _r;
_r = build_range_check (UNKNOWN_LOCATION, type, captures[1], code == EQ_EXPR,
lo, hi);
return _r;
}
next_after_fail103:;
}
else
{
{
/* #line 1969 "/home/seti/riscv-gnu-toolchain/gcc/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 1979 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (etype && hi && !TREE_OVERFLOW (hi)
)
{
/* #line 1980 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail104;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail104;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail104;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1981, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != etype)
_r2 = fold_build1_loc (loc, NOP_EXPR, etype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = lo;
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = hi;
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail104:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail105;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail105;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail105;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1982, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != etype)
_r2 = fold_build1_loc (loc, NOP_EXPR, etype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = lo;
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = hi;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail105:;
}
}
}
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_17 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail106;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail106;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2336, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail106:;
return NULL_TREE;
}
static tree
generic_simplify_18 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail107;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1196, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_all_ones_cst (TREE_TYPE (captures[0]));
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail107:;
return NULL_TREE;
}
static tree
generic_simplify_19 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (acmp))
{
{
/* #line 4630 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst = uniform_integer_cst_p (captures[1]);
/* #line 4631 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (cst) == 1
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail108;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4632, __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 _r;
_r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail108:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_20 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail109;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail109;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6223, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail109:;
return NULL_TREE;
}
static tree
generic_simplify_21 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail110;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1217, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail110:;
return NULL_TREE;
}
static tree
generic_simplify_22 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (neg_op))
{
/* #line 568 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 575 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (captures[1]) && !HONOR_INFINITIES (captures[1])
)
{
/* #line 577 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail111;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 578, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail111:;
}
else
{
/* #line 580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail112;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 581, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, neg_op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail112:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_23 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!CONSTANT_CLASS_P (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail113;
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[0];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail113:;
}
else
{
{
/* #line 1743 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst1 = const_binop (bitop, type, captures[0], captures[2]);
/* #line 1744 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst1
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail114;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail114;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail114;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1745, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = cst1;
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail114:;
}
else
{
{
/* #line 1746 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst2 = const_binop (bitop, type, captures[1], captures[2]);
/* #line 1747 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst2
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail115;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail115;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail115;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail115;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1748, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = cst2;
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail115:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (code2), const enum tree_code ARG_UNUSED (code1))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cmp = tree_int_cst_compare (captures[2], captures[4]);
/* #line 2422 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((code1 == LT_EXPR || code1 == LE_EXPR)
&& (code2 == LT_EXPR || code2 == LE_EXPR)
)
{
/* #line 2424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail116;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail116;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail116;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2425, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail116:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail117;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail117;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail117;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2426, __FILE__, __LINE__);
{
tree _r;
_r = captures[3];
return _r;
}
next_after_fail117:;
}
}
else
{
/* #line 2428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((code1 == GT_EXPR || code1 == GE_EXPR)
&& (code2 == GT_EXPR || code2 == GE_EXPR)
)
{
/* #line 2430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail118;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail118;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail118;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2431, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail118:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail119;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail119;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail119;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2432, __FILE__, __LINE__);
{
tree _r;
_r = captures[3];
return _r;
}
next_after_fail119:;
}
}
else
{
/* #line 2434 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == 0
&& ((code1 == LE_EXPR && code2 == GE_EXPR)
|| (code1 == GE_EXPR && code2 == LE_EXPR))
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail120;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail120;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail120;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2437, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail120:;
}
else
{
/* #line 2439 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp <= 0
&& (code1 == LT_EXPR || code1 == LE_EXPR)
&& (code2 == GT_EXPR || code2 == GE_EXPR)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail121;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail121;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail121;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2442, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail121:;
}
else
{
/* #line 2443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp >= 0
&& (code1 == GT_EXPR || code1 == GE_EXPR)
&& (code2 == LT_EXPR || code2 == LE_EXPR)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail122;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail122;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail122;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2446, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail122:;
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_25 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail123;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1234, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail123:;
return NULL_TREE;
}
static tree
generic_simplify_26 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail124;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4711, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail124:;
}
else
{
/* #line 4712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
&& single_use (captures[0])
)
{
/* #line 4716 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) < 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail125;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail125:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail126;
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;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail126:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_27 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (copysigns))
{
/* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail127;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 872, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail127:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail128;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 873, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail128:;
}
return NULL_TREE;
}
static tree
generic_simplify_28 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail129;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail129;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5859, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail129:;
}
return NULL_TREE;
}
static tree
generic_simplify_29 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
|| !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail130;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1797, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = build_each_one_cst (TREE_TYPE (captures[0]));
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail130:;
}
return NULL_TREE;
}
static tree
generic_simplify_30 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! FLOAT_TYPE_P (type)
&& tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail131;
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_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail131:;
}
return NULL_TREE;
}
static tree
generic_simplify_31 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
{
/* #line 1142 "/home/seti/riscv-gnu-toolchain/gcc/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 1147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (utype
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail132;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail132;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail132;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail132;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1148, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = pmop[0];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
{
tree _o3[1], _r3;
_o3[0] = pmop[1];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail132:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_32 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1827 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail133;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1828, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail133:;
}
return NULL_TREE;
}
static tree
generic_simplify_33 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
{
/* #line 473 "/home/seti/riscv-gnu-toolchain/gcc/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 478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (div == EXACT_DIV_EXPR
|| optimize_successive_divisions_p (captures[3], captures[0])
)
{
/* #line 480 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!overflow
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail134;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail134;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail134;
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_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (type, mul);
tree _r;
_r = fold_build2_loc (loc, div, type, res_op0, res_op1);
return _r;
}
next_after_fail134:;
}
else
{
/* #line 482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
|| mul != wi::min_value (TYPE_PRECISION (type), SIGNED)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail135;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail135;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail135;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 484, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail135:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_34 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shift), const enum tree_code ARG_UNUSED (mod))
{
/* #line 712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail136;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail136;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 713, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
{
tree _o2[2], _r2;
_o2[0] = captures[2];
_o2[1] = build_int_cst (TREE_TYPE (captures[2]),
1);
_r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, shift, type, res_op0, res_op1);
return _r;
}
next_after_fail136:;
}
return NULL_TREE;
}
static tree
generic_simplify_35 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (FMIN_ALL))
{
/* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_finite_math_only
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail137;
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[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail137:;
}
return NULL_TREE;
}
static tree
generic_simplify_36 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail138;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6622, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail138:;
return NULL_TREE;
}
static tree
generic_simplify_37 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
)
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail139;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7054, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail139;
return _r;
}
next_after_fail139:;
}
return NULL_TREE;
}
static tree
generic_simplify_38 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SCALAR_FLOAT_TYPE_P (type)
&& ! HONOR_NANS (type)
&& ! HONOR_INFINITIES (type)
)
{
/* #line 525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (type, float_type_node)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail140;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 526, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_one_cst (type);
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNF, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail140;
return _r;
}
next_after_fail140:;
}
else
{
/* #line 527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (type, double_type_node)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail141;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 528, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_one_cst (type);
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGN, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail141;
return _r;
}
next_after_fail141:;
}
else
{
/* #line 529 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (type, long_double_type_node)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail142;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 530, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_one_cst (type);
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COPYSIGNL, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail142;
return _r;
}
next_after_fail142:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_39 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& op != MULT_EXPR
&& op != RDIV_EXPR
&& 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])
|| poly_int_tree_p (captures[3]))
)
{
/* #line 6674 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail143;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6675, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail143:;
}
else
{
{
/* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail144;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6677, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail144:;
}
}
}
else
{
/* #line 6679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (type)
&& DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
== DECIMAL_FLOAT_TYPE_P (type)
)
{
{
/* #line 6682 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree arg0 = strip_float_extensions (captures[2]);
tree arg1 = strip_float_extensions (captures[4]);
tree itype = TREE_TYPE (captures[0]);
tree ty1 = TREE_TYPE (arg0);
tree ty2 = TREE_TYPE (arg1);
enum tree_code code = TREE_CODE (itype);
/* #line 6688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (ty1)
&& FLOAT_TYPE_P (ty2)
)
{
{
/* #line 6690 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newtype = type;
if (TYPE_MODE (ty1) == SDmode
|| TYPE_MODE (ty2) == SDmode
|| TYPE_MODE (type) == SDmode)
newtype = dfloat32_type_node;
if (TYPE_MODE (ty1) == DDmode
|| TYPE_MODE (ty2) == DDmode
|| TYPE_MODE (type) == DDmode)
newtype = dfloat64_type_node;
if (TYPE_MODE (ty1) == TDmode
|| TYPE_MODE (ty2) == TDmode
|| TYPE_MODE (type) == TDmode)
newtype = dfloat128_type_node;
/* #line 6703 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((newtype == dfloat32_type_node
|| newtype == dfloat64_type_node
|| newtype == dfloat128_type_node)
&& newtype == type
&& types_match (newtype, type)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail145;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail145;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail145;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6708, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail145:;
}
else
{
{
/* #line 6709 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
newtype = ty1;
if (TYPE_PRECISION (ty2) > TYPE_PRECISION (newtype))
newtype = ty2;
/* #line 6734 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (newtype) < TYPE_PRECISION (itype)
&& (flag_unsafe_math_optimizations
|| (TYPE_PRECISION (newtype) == TYPE_PRECISION (type)
&& real_can_shorten_arithmetic (TYPE_MODE (itype),
TYPE_MODE (type))
&& !excess_precision_type (newtype)))
&& !types_match (itype, newtype)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail146;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail146;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail146;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6741, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail146:;
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail147;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1462, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail147:;
}
return NULL_TREE;
}
static tree
generic_simplify_41 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail148;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1279, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[2])) goto next_after_fail148;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = unshare_expr (captures[2]);
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail148:;
return NULL_TREE;
}
static tree
generic_simplify_42 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 3054 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type)
&& tree_int_cst_sgn (captures[4]) > 0
&& (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[3])) == 0
)
{
{
/* #line 3057 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
wide_int wone = wi::one (TYPE_PRECISION (type));
wide_int c = wi::add (wi::to_wide (captures[2]),
wi::lshift (wone, wi::to_wide (captures[4])));
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail149;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail149;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail149;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3060, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (type, c);
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail149:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_43 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail150;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1286, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail150:;
return NULL_TREE;
}
static tree
generic_simplify_44 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const combined_fn ARG_UNUSED (bswap))
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree ctype = TREE_TYPE (captures[1]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail151;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3979, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != ctype)
_r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail151;
if (EXPR_P (_r1))
goto next_after_fail151;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail151:;
}
return NULL_TREE;
}
static tree
generic_simplify_45 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2796 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail152;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2806, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail152:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_46 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 3086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& tree_int_cst_sgn (captures[2]) > 0
&& (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[1])) == 0
)
{
{
/* #line 3089 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t = type;
if (!TYPE_OVERFLOW_WRAPS (t))
t = unsigned_type_for (t);
wide_int wone = wi::one (TYPE_PRECISION (t));
wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])), wone);
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail153;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail153;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3094, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != t)
_r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = wide_int_to_tree (t, c);
_r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail153:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail154;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1296, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail154:;
return NULL_TREE;
}
static tree
generic_simplify_48 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail155;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail155;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1063, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail155:;
return NULL_TREE;
}
static tree
generic_simplify_49 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail156;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2594, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail156:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_50 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (BITS_PER_UNIT == 8
&& CHAR_TYPE_SIZE == 8
&& tree_fits_uhwi_p (captures[2])
)
{
{
/* #line 4013 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[2]);
tree st = TYPE_PRECISION (type) > prec ? TREE_TYPE (captures[0]) : type;
/* #line 4024 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (type) > prec
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& TYPE_UNSIGNED (type)
&& bits < prec && bits + 8 >= prec
)
{
{
/* #line 4028 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree nst = build_int_cst (integer_type_node, prec - 8);
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail157;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail157;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4029, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
if (TREE_TYPE (_o3[0]) != st)
_r3 = fold_build1_loc (loc, NOP_EXPR, st, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = nst;
_r2 = fold_build2_loc (loc, LSHIFT_EXPR, st, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail157:;
}
}
else
{
/* #line 4030 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (bits + 8 == prec
)
{
/* #line 4031 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (st)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail158;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail158;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4032, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != unsigned_char_type_node)
_r1 = fold_build1_loc (loc, NOP_EXPR, unsigned_char_type_node, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail158:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail159;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail159;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4033, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != signed_char_type_node)
_r1 = fold_build1_loc (loc, NOP_EXPR, signed_char_type_node, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail159:;
}
}
else
{
/* #line 4034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (bits < prec && bits + 8 > prec
)
{
{
/* #line 4035 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree nst = build_int_cst (integer_type_node, bits & 7);
tree bt = TYPE_UNSIGNED (st) ? unsigned_char_type_node
: signed_char_type_node;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail160;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail160;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4041, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != bt)
_r2 = fold_build1_loc (loc, NOP_EXPR, bt, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = nst;
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, bt, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail160:;
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_51 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (sq), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && ! flag_errno_math
)
{
/* #line 5074 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail161;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5075, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail161:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail162;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3966, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail162:;
return NULL_TREE;
}
static tree
generic_simplify_53 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail163;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1306, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail163:;
return NULL_TREE;
}
static tree
generic_simplify_54 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (sq), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && ! flag_errno_math
)
{
/* #line 4939 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
)
{
/* #line 4942 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail164;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4943, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail164:;
}
else
{
/* #line 4946 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == NE_EXPR || !HONOR_NANS (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail165;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4947, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail165:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail166;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4949, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail166:;
}
}
}
else
{
/* #line 4950 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0)
)
{
/* #line 4953 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail167;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4954, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail167:;
}
else
{
/* #line 4956 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR && !HONOR_NANS (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail168;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4957, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail168:;
}
else
{
/* #line 4959 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail169;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4960, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail169:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail170;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4968, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail170:;
}
}
}
}
else
{
/* #line 4969 "/home/seti/riscv-gnu-toolchain/gcc/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 4976 "/home/seti/riscv-gnu-toolchain/gcc/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 5026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR || cmp == GE_EXPR
)
{
/* #line 5027 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_ISINF (c2)
)
{
/* #line 5029 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (HONOR_INFINITIES (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail171;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5030, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), c2);
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail171:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail172;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5031, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail172:;
}
}
else
{
/* #line 5033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ncmp != ERROR_MARK
)
{
/* #line 5034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ncmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail173;
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;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), c2);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail173:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail174;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5036, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), c2);
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail174:;
}
}
}
}
else
{
/* #line 5038 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_ISINF (c2)
)
{
/* #line 5042 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail175;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5043, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail175:;
}
else
{
/* #line 5046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail176;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5047, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), c2);
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail176:;
}
else
{
/* #line 5050 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_INFINITIES (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail177;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5051, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), dconst0);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail177:;
}
else
{
/* #line 5053 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (1
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail178;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5054, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[0])) goto next_after_fail178;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = unshare_expr (captures[0]);
_o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
_r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = build_real (TREE_TYPE (captures[0]), c2);
_r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail178:;
}
}
}
}
}
else
{
/* #line 5058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ncmp != ERROR_MARK && ! HONOR_NANS (captures[0])
)
{
/* #line 5059 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ncmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail179;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5060, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), c2);
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail179:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail180;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5061, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), c2);
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail180:;
}
}
else
{
/* #line 5063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ncmp != ERROR_MARK &&
1
)
{
/* #line 5064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ncmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail181;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5065, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[0])) goto next_after_fail181;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = unshare_expr (captures[0]);
_o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
_r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = build_real (TREE_TYPE (captures[0]), c2);
_r1 = fold_build2_loc (loc, LT_EXPR, type, _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail181:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail182;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5068, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[0])) goto next_after_fail182;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = unshare_expr (captures[0]);
_o1[1] = build_real (TREE_TYPE (captures[0]), dconst0);
_r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = build_real (TREE_TYPE (captures[0]), c2);
_r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail182:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_55 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift))
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
)
{
{
/* #line 3581 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
/* #line 3582 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (mask
)
{
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail183;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail183;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail183;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3583, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = mask;
tree _r;
_r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
return _r;
}
next_after_fail183:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail184;
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 _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail184:;
return NULL_TREE;
}
static tree
generic_simplify_57 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4727 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
&& wi::to_wide (captures[1]) != 0
)
{
{
/* #line 4730 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
widest_int quot;
/* #line 4731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::multiple_of_p (wi::to_widest (captures[2]), wi::to_widest (captures[1]),
TYPE_SIGN (TREE_TYPE (captures[0])), &quot)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail185;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4733, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), quot);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail185:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail186;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4734, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail186:;
}
}
}
else
{
/* #line 4735 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
&& (wi::bit_and (wi::to_wide (captures[1]), 1) == 1)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail187;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail187;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail187;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4738, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
tree itype = TREE_TYPE (captures[0]);
int p = TYPE_PRECISION (itype);
wide_int m = wi::one (p + 1) << p;
wide_int a = wide_int::from (wi::to_wide (captures[1]), p + 1, UNSIGNED);
wide_int i = wide_int::from (wi::mod_inv (a, m),
p, TYPE_SIGN (itype)); res_op1 =
wide_int_to_tree (itype, wi::mul (i, wi::to_wide (captures[2])));
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail187:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_58 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5635 "/home/seti/riscv-gnu-toolchain/gcc/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]))
&& !(
1
&& TREE_CODE (TREE_TYPE (captures[0])) == REFERENCE_TYPE
&& (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT))))
|| (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 (!dbg_cnt (match), 0)) goto next_after_fail188;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5647, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
_r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail188:;
}
return NULL_TREE;
}
static tree
generic_simplify_59 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail189;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2020, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail189:;
}
return NULL_TREE;
}
static tree
generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail190;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail190;
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 = captures[2];
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail190:;
return NULL_TREE;
}
static tree
generic_simplify_61 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail191;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail191;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1491, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail191:;
return NULL_TREE;
}
static tree
generic_simplify_62 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail192;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1324, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail192:;
return NULL_TREE;
}
static tree
generic_simplify_63 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail193;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1329, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail193:;
return NULL_TREE;
}
static tree
generic_simplify_64 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail194;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1591, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail194:;
}
return NULL_TREE;
}
static tree
generic_simplify_65 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail195;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 688, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail195:;
}
return NULL_TREE;
}
static tree
generic_simplify_66 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (tans), const combined_fn ARG_UNUSED (atans))
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail196;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6129, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail196:;
}
return NULL_TREE;
}
static tree
generic_simplify_67 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail197;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1337, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail197:;
return NULL_TREE;
}
static tree
generic_simplify_68 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (neg_cmp))
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
{
/* #line 5946 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (RDIV_EXPR, type, captures[2], captures[1]);
/* #line 5948 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
&& !(REAL_VALUE_ISINF (TREE_REAL_CST (tem))
|| (real_zerop (tem) && !real_zerop (captures[1])))
)
{
/* #line 5952 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail198;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail198;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail198;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5953, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail198:;
}
else
{
/* #line 5954 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail199;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail199;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail199;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5955, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, neg_cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail199:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_69 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail200;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2073, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail200:;
}
return NULL_TREE;
}
static tree
generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (eqne))
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail201;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail201;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2323, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail201:;
}
else
{
/* #line 2324 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail202;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail202;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail202;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2325, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail202:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_71 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail203;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4840, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[1]), dconst0);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail203:;
}
else
{
/* #line 4842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[0]) == REAL_CST
&& REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail204;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4844, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_real (TREE_TYPE (captures[0]), dconst0);
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail204:;
}
else
{
/* #line 4846 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
&& !tree_expr_signaling_nan_p (captures[1])
&& !tree_expr_maybe_signaling_nan_p (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail205;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4849, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail205:;
}
else
{
/* #line 4851 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[0]) == REAL_CST
&& REAL_VALUE_ISNAN (TREE_REAL_CST (captures[0]))
&& !tree_expr_signaling_nan_p (captures[0])
&& !tree_expr_signaling_nan_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail206;
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 _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail206:;
}
else
{
/* #line 4857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1]))
&& MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1])))
)
{
{
/* #line 4859 "/home/seti/riscv-gnu-toolchain/gcc/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 4869 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == GT_EXPR
&& !(HONOR_NANS (captures[0]) && flag_trapping_math)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail207;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4871, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail207:;
}
else
{
/* #line 4872 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == LE_EXPR
)
{
/* #line 4874 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail208;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4875, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail208:;
}
else
{
/* #line 4878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!flag_trapping_math
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail209;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4879, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[0])) goto next_after_fail209;
tree res_op0;
res_op0 = unshare_expr (captures[0]);
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail209:;
}
}
}
else
{
/* #line 4882 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
|| code == GE_EXPR
)
{
{
/* #line 4884 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 4885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (neg
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail210;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4886, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail210:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail211;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4887, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail211:;
}
}
}
else
{
/* #line 4889 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == LT_EXPR
)
{
{
/* #line 4890 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 4891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (neg
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail212;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4892, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail212:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail213;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4893, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail213:;
}
}
}
else
{
/* #line 4896 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == NE_EXPR
)
{
{
/* #line 4897 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 4898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[0])
)
{
/* #line 4899 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (neg
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail214;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4900, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail214:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail215;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4901, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail215:;
}
}
else
{
/* #line 4902 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (neg
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail216;
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[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, UNGE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail216:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail217;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4904, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (TREE_TYPE (captures[0]), max);
tree _r;
_r = fold_build2_loc (loc, UNLE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail217:;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_72 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail218;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail218;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail218;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2351, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail218:;
return NULL_TREE;
}
static tree
generic_simplify_73 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off0, off1;
tree base0, base1;
int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
off0, off1,
1
);
/* #line 3178 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 1
)
{
/* #line 3179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (minmax == MIN_EXPR
)
{
/* #line 3180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_le (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail219;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail219;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail219;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3181, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail219:;
}
else
{
/* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_gt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail220;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail220;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail220;
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 _r;
_r = captures[2];
return _r;
}
next_after_fail220:;
}
}
}
else
{
/* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_ge (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail221;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail221;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail221;
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 _r;
_r = captures[0];
return _r;
}
next_after_fail221:;
}
else
{
/* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_lt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail222;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail222;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail222;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3187, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail222:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
&& tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
)
{
/* #line 1503 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[4]) && single_use (captures[5])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail223;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail223;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1504, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[6];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail223:;
}
else
{
/* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0]) && single_use (captures[1])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail224;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail224;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1506, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail224:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_75 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail225;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail225;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1291, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail225:;
return NULL_TREE;
}
static tree
generic_simplify_76 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail226;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3963, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail226:;
return NULL_TREE;
}
static tree
generic_simplify_77 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail227;
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;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail227:;
return NULL_TREE;
}
static tree
generic_simplify_78 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail228;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 348, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = maybe_build_call_expr_loc (loc, COPYSIGN_ALL, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail228;
return _r;
}
next_after_fail228:;
}
return NULL_TREE;
}
static tree
generic_simplify_79 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail229;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1381, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail229:;
return NULL_TREE;
}
static tree
generic_simplify_80 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp), const enum tree_code ARG_UNUSED (ncmp))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
enum tree_code ic = invert_tree_comparison
(cmp, HONOR_NANS (captures[0]));
/* #line 4666 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ic == icmp
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail230;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail230;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4667, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail230:;
}
else
{
/* #line 4668 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ic == ncmp
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail231;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail231;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4669, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
return _r;
}
next_after_fail231:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_81 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail232;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1386, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail232:;
return NULL_TREE;
}
static tree
generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (rotate))
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/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 3606 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree rotate_type = TREE_TYPE (captures[2]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail233;
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;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != rotate_type)
_r2 = fold_build1_loc (loc, NOP_EXPR, rotate_type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail233:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_83 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail234;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail234;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4681, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail234:;
}
return NULL_TREE;
}
static tree
generic_simplify_84 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail235;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1391, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail235:;
return NULL_TREE;
}
static tree
generic_simplify_85 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 4696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail236;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail236;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail236;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4699, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail236:;
}
return NULL_TREE;
}
static tree
generic_simplify_86 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail237;
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;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail237:;
}
return NULL_TREE;
}
static tree
generic_simplify_87 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/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 5659 "/home/seti/riscv-gnu-toolchain/gcc/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 5669 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == max
)
{
/* #line 5671 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail238;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5672, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail238:;
}
else
{
/* #line 5673 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail239;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail239;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5674, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail239:;
}
else
{
/* #line 5675 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail240;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5676, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail240:;
}
else
{
/* #line 5677 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail241;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail241;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5678, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail241:;
}
}
}
}
}
else
{
/* #line 5679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == min
)
{
/* #line 5681 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail242;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5682, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail242:;
}
else
{
/* #line 5683 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail243;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail243;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5684, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail243:;
}
else
{
/* #line 5685 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail244;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5686, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail244:;
}
else
{
/* #line 5687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail245;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail245;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5688, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail245:;
}
}
}
}
}
else
{
/* #line 5689 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == max - 1
)
{
/* #line 5691 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail246;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail246;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5692, __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 _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail246:;
}
else
{
/* #line 5696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail247;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail247;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5697, __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 _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail247:;
}
}
}
else
{
/* #line 5701 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == min + 1
)
{
/* #line 5703 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail248;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail248;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5704, __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 _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail248:;
}
else
{
/* #line 5708 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail249;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail249;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5709, __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 _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail249:;
}
}
}
else
{
/* #line 5713 "/home/seti/riscv-gnu-toolchain/gcc/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 5724 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR || cmp == GT_EXPR
)
{
{
/* #line 5725 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree st = signed_type_for (TREE_TYPE (captures[2]));
/* #line 5727 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst == captures[2] && cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail250;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5728, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != st)
_r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail250:;
}
else
{
/* #line 5729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst == captures[2] && cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail251;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5730, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != st)
_r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail251:;
}
else
{
/* #line 5731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail252;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5732, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail252:;
}
else
{
/* #line 5733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail253;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5734, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail253:;
}
}
}
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_88 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail254;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail254;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5249, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail254:;
return NULL_TREE;
}
static tree
generic_simplify_89 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail255;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2006, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail255:;
}
return NULL_TREE;
}
static tree
generic_simplify_90 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (code2), const enum tree_code ARG_UNUSED (code1))
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cmp = tree_int_cst_compare (captures[2], captures[4]);
/* #line 2488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((code1 == LT_EXPR || code1 == LE_EXPR)
&& (code2 == LT_EXPR || code2 == LE_EXPR)
)
{
/* #line 2490 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail256;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail256;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail256;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2491, __FILE__, __LINE__);
{
tree _r;
_r = captures[3];
return _r;
}
next_after_fail256:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail257;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail257;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail257;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2492, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail257:;
}
}
else
{
/* #line 2494 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((code1 == GT_EXPR || code1 == GE_EXPR)
&& (code2 == GT_EXPR || code2 == GE_EXPR)
)
{
/* #line 2496 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail258;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail258;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail258;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2497, __FILE__, __LINE__);
{
tree _r;
_r = captures[3];
return _r;
}
next_after_fail258:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail259;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail259;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail259;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2498, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail259:;
}
}
else
{
/* #line 2500 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == 0
&& ((code1 == LT_EXPR && code2 == GT_EXPR)
|| (code1 == GT_EXPR && code2 == LT_EXPR))
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail260;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail260;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail260;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2503, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail260:;
}
else
{
/* #line 2505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp >= 0
&& (code1 == LT_EXPR || code1 == LE_EXPR)
&& (code2 == GT_EXPR || code2 == GE_EXPR)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail261;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail261;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail261;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2508, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail261:;
}
else
{
/* #line 2509 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp <= 0
&& (code1 == GT_EXPR || code1 == GE_EXPR)
&& (code2 == LT_EXPR || code2 == LE_EXPR)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail262;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail262;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail262;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2512, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail262:;
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_91 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2))
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
|| VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail263;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5267, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail263:;
}
return NULL_TREE;
}
static tree
generic_simplify_92 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TYPE_OVERFLOW_UNDEFINED (type)
&& !integer_zerop (captures[0])
&& (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail264;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 428, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = build_zero_cst (type);
_r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_minus_one_cst (type);
tree res_op2;
res_op2 = build_one_cst (type);
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail264:;
}
return NULL_TREE;
}
static tree
generic_simplify_93 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! TYPE_UNSIGNED (type)
&& ! HONOR_SIGN_DEPENDENT_ROUNDING (type)
&& single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail265;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1625, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail265:;
}
return NULL_TREE;
}
static tree
generic_simplify_94 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& types_match (captures[0], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail266;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail266;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5491, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
return _r;
}
next_after_fail266:;
}
return NULL_TREE;
}
static tree
generic_simplify_95 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
&& ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
)
{
{
/* #line 5084 "/home/seti/riscv-gnu-toolchain/gcc/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 5092 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (fmt.can_represent_integral_type_p (type1)
&& fmt.can_represent_integral_type_p (type2)
)
{
/* #line 5094 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail267;
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 _r;
_r = constant_boolean_node (cmp == ORDERED_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail267:;
}
else
{
/* #line 5096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2)
&& type1_signed_p >= type2_signed_p
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail268;
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 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
_r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail268:;
}
else
{
/* #line 5099 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2)
&& type1_signed_p <= type2_signed_p
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail269;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5101, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type2)
_r1 = fold_build1_loc (loc, NOP_EXPR, type2, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail269:;
}
else
{
/* #line 5102 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
&& type1_signed_p == type2_signed_p
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail270;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5104, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail270:;
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_96 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail271;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
return _r;
}
next_after_fail271:;
}
return NULL_TREE;
}
static tree
generic_simplify_97 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
)
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail272;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7032, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail272;
return _r;
}
next_after_fail272:;
}
return NULL_TREE;
}
static tree
generic_simplify_98 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/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 3487 "/home/seti/riscv-gnu-toolchain/gcc/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 3541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((mask & zerobits) == mask
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail273;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail273;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail273;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail273;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3542, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, 0);
return _r;
}
next_after_fail273:;
}
else
{
{
/* #line 3543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
newmask = mask | zerobits;
/* #line 3544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (newmask != mask && (newmask & (newmask + 1)) == 0
)
{
{
/* #line 3545 "/home/seti/riscv-gnu-toolchain/gcc/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 3554 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (prec < HOST_BITS_PER_WIDE_INT
|| newmask == HOST_WIDE_INT_M1U
)
{
{
/* #line 3556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 3558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_int_cst_equal (newmaskt, captures[5])
)
{
/* #line 3559 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (shift_type != TREE_TYPE (captures[2])
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail274;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail274;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail274;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail274;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3560, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != shift_type)
_r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail274:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail275;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail275;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail275;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3561, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail275:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_99 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (reduc))
{
{
/* #line 7558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
tree elt = ctor_single_nonzero_element (ctor);
/* #line 7561 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (elt
&& !HONOR_SNANS (type)
&& !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail276;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail276;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7564, __FILE__, __LINE__);
{
tree _r;
_r = elt;
return _r;
}
next_after_fail276:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_100 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 5557 "/home/seti/riscv-gnu-toolchain/gcc/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 5561 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = signed_type_for (TREE_TYPE (captures[1]));
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail277;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail277;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5562, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != stype)
_r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (stype);
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail277:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_101 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 3072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& tree_int_cst_sgn (captures[2]) > 0
&& tree_int_cst_sgn (captures[4]) > 0
&& (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[3])) == 0
)
{
{
/* #line 3076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t = type;
if (!TYPE_OVERFLOW_WRAPS (t))
t = unsigned_type_for (t);
wide_int wone = wi::one (TYPE_PRECISION (t));
wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])),
wi::lshift (wone, wi::to_wide (captures[4])));
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail278;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail278;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail278;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3082, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != t)
_r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = wide_int_to_tree (t,c);
_r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail278:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[1]))
&& ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1]))
)
{
{
/* #line 5113 "/home/seti/riscv-gnu-toolchain/gcc/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 5128 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (fmt.can_represent_integral_type_p (itype) && ! exception_p
)
{
{
/* #line 5129 "/home/seti/riscv-gnu-toolchain/gcc/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 5152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_compare (LT_EXPR, cst, &imin)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail279;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail279;
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 _r;
_r = constant_boolean_node (cmp == GT_EXPR || cmp == GE_EXPR || cmp == NE_EXPR,
type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail279:;
}
else
{
/* #line 5155 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_compare (GT_EXPR, cst, &imax)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail280;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail280;
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 _r;
_r = constant_boolean_node (cmp == LT_EXPR || cmp == LE_EXPR || cmp == NE_EXPR,
type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail280:;
}
else
{
/* #line 5159 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst_int_p
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail281;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail281;
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[0];
tree res_op1;
gcc_assert (!overflow_p); res_op1 =
wide_int_to_tree (itype, icst_val);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail281:;
}
else
{
/* #line 5166 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR || cmp == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail282;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail282;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5167, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail282:;
}
else
{
{
/* #line 5169 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
gcc_checking_assert (!overflow_p);
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail283;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail283;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5173, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (itype, icst_val);
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail283:;
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_103 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail284;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail284;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 591, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_int_cst (integer_type_node,
wi::exact_log2 (wi::to_wide (captures[2])));
tree _r;
_r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail284:;
}
return NULL_TREE;
}
static tree
generic_simplify_104 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2775 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail285;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail285;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2776, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail285:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_105 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (rotate))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail286;
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__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail286:;
return NULL_TREE;
}
static tree
generic_simplify_106 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (SIN))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail287;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6257, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = maybe_build_call_expr_loc (loc, SIN, type, 1, res_op0);
if (!_r)
goto next_after_fail287;
return _r;
}
next_after_fail287:;
}
return NULL_TREE;
}
static tree
generic_simplify_107 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 3120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (type) != COMPLEX_TYPE
&& (! ANY_INTEGRAL_TYPE_P (type)
|| TYPE_OVERFLOW_UNDEFINED (type))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail288;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3123, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail288:;
}
return NULL_TREE;
}
static tree
generic_simplify_108 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail289;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6516, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
if (!_r)
goto next_after_fail289;
return _r;
}
next_after_fail289:;
}
return NULL_TREE;
}
static tree
generic_simplify_109 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& op != MULT_EXPR
&& op != RDIV_EXPR
&& 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])
|| poly_int_tree_p (captures[3]))
)
{
/* #line 6674 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail290;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6675, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail290:;
}
else
{
{
/* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail291;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6677, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail291:;
}
}
}
else
{
/* #line 6679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (type)
&& DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
== DECIMAL_FLOAT_TYPE_P (type)
)
{
{
/* #line 6682 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree arg0 = strip_float_extensions (captures[2]);
tree arg1 = strip_float_extensions (captures[4]);
tree itype = TREE_TYPE (captures[0]);
tree ty1 = TREE_TYPE (arg0);
tree ty2 = TREE_TYPE (arg1);
enum tree_code code = TREE_CODE (itype);
/* #line 6688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (ty1)
&& FLOAT_TYPE_P (ty2)
)
{
{
/* #line 6690 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newtype = type;
if (TYPE_MODE (ty1) == SDmode
|| TYPE_MODE (ty2) == SDmode
|| TYPE_MODE (type) == SDmode)
newtype = dfloat32_type_node;
if (TYPE_MODE (ty1) == DDmode
|| TYPE_MODE (ty2) == DDmode
|| TYPE_MODE (type) == DDmode)
newtype = dfloat64_type_node;
if (TYPE_MODE (ty1) == TDmode
|| TYPE_MODE (ty2) == TDmode
|| TYPE_MODE (type) == TDmode)
newtype = dfloat128_type_node;
/* #line 6703 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((newtype == dfloat32_type_node
|| newtype == dfloat64_type_node
|| newtype == dfloat128_type_node)
&& newtype == type
&& types_match (newtype, type)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail292;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail292;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail292;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6708, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail292:;
}
else
{
{
/* #line 6709 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
newtype = ty1;
if (TYPE_PRECISION (ty2) > TYPE_PRECISION (newtype))
newtype = ty2;
/* #line 6734 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (newtype) < TYPE_PRECISION (itype)
&& (flag_unsafe_math_optimizations
|| (TYPE_PRECISION (newtype) == TYPE_PRECISION (type)
&& real_can_shorten_arithmetic (TYPE_MODE (itype),
TYPE_MODE (type))
&& !excess_precision_type (newtype)))
&& !types_match (itype, newtype)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail293;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail293;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail293;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6741, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail293:;
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_110 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (maxmin))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail294;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3235, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, maxmin, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail294:;
return NULL_TREE;
}
static tree
generic_simplify_111 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail295;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6526, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
if (!_r)
goto next_after_fail295;
return _r;
}
next_after_fail295:;
}
return NULL_TREE;
}
static tree
generic_simplify_112 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
&& tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
)
{
/* #line 1503 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[4]) && single_use (captures[5])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail296;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail296;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1504, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[6];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail296:;
}
else
{
/* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0]) && single_use (captures[1])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail297;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail297;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1506, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail297:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_113 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0]) && single_use (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail298;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4794, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail298:;
}
return NULL_TREE;
}
static tree
generic_simplify_114 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (sgncmp), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& types_match (captures[0], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail299;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail299;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5481, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
return _r;
}
next_after_fail299:;
}
return NULL_TREE;
}
static tree
generic_simplify_115 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail300;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6413, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail300;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail300:;
}
return NULL_TREE;
}
static tree
generic_simplify_116 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (floors), const combined_fn ARG_UNUSED (truncs))
{
/* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail301;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6392, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, truncs, type, 1, res_op0);
if (!_r)
goto next_after_fail301;
return _r;
}
next_after_fail301:;
}
return NULL_TREE;
}
static tree
generic_simplify_117 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/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 4814 "/home/seti/riscv-gnu-toolchain/gcc/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 4831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (newtype)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail302;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4832, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail302:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_118 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
&& !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
&& !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[2]))
&& !TYPE_SATURATING (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail303;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail303;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1420, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
_o2[1] = captures[1];
_r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail303:;
}
return NULL_TREE;
}
static tree
generic_simplify_119 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (opo), const enum tree_code ARG_UNUSED (opi))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail304;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1469, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail304:;
return NULL_TREE;
}
static tree
generic_simplify_120 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail305;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1449, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail305:;
}
return NULL_TREE;
}
static tree
generic_simplify_121 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail306;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail306;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2356, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail306:;
return NULL_TREE;
}
static tree
generic_simplify_122 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 3949 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail307;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3950, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail307:;
}
return NULL_TREE;
}
static tree
generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_TYPE_P (type)
|| (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
)
{
{
/* #line 4656 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
enum tree_code ic = invert_tree_comparison
(cmp, HONOR_NANS (captures[0]));
/* #line 4658 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ic == icmp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail308;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4659, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail308:;
}
else
{
/* #line 4660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ic == ncmp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail309;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4661, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
return _r;
}
next_after_fail309:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_124 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail310;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1495, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail310:;
return NULL_TREE;
}
static tree
generic_simplify_125 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off0, off1;
tree base0, base1;
int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
off0, off1,
1
);
/* #line 3178 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 1
)
{
/* #line 3179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (minmax == MIN_EXPR
)
{
/* #line 3180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_le (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail311;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail311;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail311;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3181, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail311:;
}
else
{
/* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_gt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail312;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail312;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail312;
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 _r;
_r = captures[2];
return _r;
}
next_after_fail312:;
}
}
}
else
{
/* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_ge (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail313;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail313;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail313;
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 _r;
_r = captures[0];
return _r;
}
next_after_fail313:;
}
else
{
/* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_lt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail314;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail314;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail314;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3187, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail314:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_126 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off0, off1;
tree base0, base1;
int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
off0, off1,
1
);
/* #line 5597 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 1
)
{
/* #line 5599 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail315;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail315;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail315;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5600, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_eq (off0, off1), type);
return _r;
}
next_after_fail315:;
}
else
{
/* #line 5601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail316;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail316;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail316;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5602, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_ne (off0, off1), type);
return _r;
}
next_after_fail316:;
}
else
{
/* #line 5603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail317;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail317;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail317;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5604, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_lt (off0, off1), type);
return _r;
}
next_after_fail317:;
}
else
{
/* #line 5605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail318;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail318;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail318;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5606, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_le (off0, off1), type);
return _r;
}
next_after_fail318:;
}
else
{
/* #line 5607 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail319;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail319;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail319;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5608, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_ge (off0, off1), type);
return _r;
}
next_after_fail319:;
}
else
{
/* #line 5609 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail320;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail320;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail320;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5610, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (known_gt (off0, off1), type);
return _r;
}
next_after_fail320:;
}
}
}
}
}
}
}
else
{
/* #line 5611 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 0
)
{
/* #line 5613 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail321;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail321;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail321;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5614, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
return _r;
}
next_after_fail321:;
}
else
{
/* #line 5615 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail322;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail322;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail322;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5616, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
return _r;
}
next_after_fail322:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_127 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
/* #line 6317 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TREE_OVERFLOW (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail323;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6318, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = build_one_cst (type);
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail323;
return _r;
}
next_after_fail323:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_128 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!integer_zerop (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail324;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail324:;
}
return NULL_TREE;
}
static tree
generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (neeq))
{
/* #line 5622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
&& ptrs_compare_unequal (captures[0], captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail325;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5624, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (neeq != EQ_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail325:;
}
return NULL_TREE;
}
static tree
generic_simplify_130 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (BITS_PER_UNIT == 8
&& tree_fits_uhwi_p (captures[2])
&& tree_to_uhwi (captures[2]) < 256
)
{
{
/* #line 4048 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
tree nst = build_int_cst (integer_type_node, prec - 8);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail326;
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;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = nst;
_r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail326:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_131 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/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))
&& (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
|| (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
&& (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
|| (element_precision (type)
== element_precision (TREE_TYPE (captures[2])))
|| (INTEGRAL_TYPE_P (type)
&& (tree_nonzero_bits (captures[0])
& wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
true,
element_precision (type))) == 0))))
)
{
/* #line 384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!VECTOR_TYPE_P (type)
&& useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
&& element_precision (TREE_TYPE (captures[1])) < element_precision (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail327;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 387, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail327:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail328;
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 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail328:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_132 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), 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 (!dbg_cnt (match), 0)) goto next_after_fail329;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3271, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[2])) goto next_after_fail329;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = unshare_expr (captures[2]);
_r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, comb, type, res_op0, res_op1);
return _r;
}
next_after_fail329:;
return NULL_TREE;
}
static tree
generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail330;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1301, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail330:;
return NULL_TREE;
}
static tree
generic_simplify_134 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1815 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
|| !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail331;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail331;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1817, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail331:;
}
return NULL_TREE;
}
static tree
generic_simplify_135 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail332;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1832, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail332:;
}
return NULL_TREE;
}
static tree
generic_simplify_136 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (type)
|| TYPE_OVERFLOW_WRAPS (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail333;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2590, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail333:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail334;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2591, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail334:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_137 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail335;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2091, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail335:;
}
return NULL_TREE;
}
static tree
generic_simplify_138 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail336;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1311, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail336:;
return NULL_TREE;
}
static tree
generic_simplify_139 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (cmp), const combined_fn ARG_UNUSED (clz))
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[2]) && single_use (captures[0])
)
{
{
/* #line 7074 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree type0 = TREE_TYPE (captures[1]);
tree stype = signed_type_for (type0);
HOST_WIDE_INT val = 0;
if (clz == CFN_CLZ
&& CLZ_DEFINED_VALUE_AT_ZERO (SCALAR_TYPE_MODE (type0),
val) == 2
&& val == 0)
stype = NULL_TREE;
/* #line 7084 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (stype
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail337;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7085, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != stype)
_r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (stype);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail337:;
}
}
}
else
{
{
/* #line 7087 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool ok = true;
HOST_WIDE_INT val = 0;
tree type0 = TREE_TYPE (captures[1]);
if (clz == CFN_CLZ
&& CLZ_DEFINED_VALUE_AT_ZERO (SCALAR_TYPE_MODE (type0),
val) == 2
&& val == TYPE_PRECISION (type0) - 1)
ok = false;
/* #line 7097 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ok && wi::to_wide (captures[2]) == (TYPE_PRECISION (type0) - 1)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail338;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7098, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_one_cst (type0);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail338:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_140 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1000 "/home/seti/riscv-gnu-toolchain/gcc/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 (_p1)) goto next_after_fail339;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail339;
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;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail339:;
}
return NULL_TREE;
}
static tree
generic_simplify_141 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 4603 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail340;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4608, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[3], _r2;
_o2[0] = captures[2];
{
tree _o3[1], _r3;
_o3[0] = captures[3];
_r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
_o2[1] = _r3;
}
_o2[2] = captures[4];
_r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail340:;
}
return NULL_TREE;
}
static tree
generic_simplify_142 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail341;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail341;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2341, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail341:;
return NULL_TREE;
}
static tree
generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail342;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail342;
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 = captures[2];
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail342:;
return NULL_TREE;
}
static tree
generic_simplify_144 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (code2), const enum tree_code ARG_UNUSED (code1))
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cmp = tree_int_cst_compare (captures[2], captures[4]);
bool val;
switch (code2)
{
case EQ_EXPR: val = (cmp == 0); break;
case NE_EXPR: val = (cmp != 0); break;
case LT_EXPR: val = (cmp < 0); break;
case GT_EXPR: val = (cmp > 0); break;
case LE_EXPR: val = (cmp <= 0); break;
case GE_EXPR: val = (cmp >= 0); break;
default: gcc_unreachable ();
}
/* #line 2472 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == EQ_EXPR && val
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail343;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail343;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail343;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2472, __FILE__, __LINE__);
{
tree _r;
_r = captures[3];
return _r;
}
next_after_fail343:;
}
else
{
/* #line 2473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == NE_EXPR && val
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail344;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail344;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail344;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2473, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail344:;
}
else
{
/* #line 2474 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == NE_EXPR && !val
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail345;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail345;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail345;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2474, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail345:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_145 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail346;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3281, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail346:;
return NULL_TREE;
}
static tree
generic_simplify_146 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
)
{
{
/* #line 5525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
/* #line 5529 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail347;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail347;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail347;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5530, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
_o2[1] = shifter;
_r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail347:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail348;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail348;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail348;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5531, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
{
tree _o3[2], _r3;
_o3[0] = captures[0];
_o3[1] = shifter;
_r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail348:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_147 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop))
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail349;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1483, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, rop, type, res_op0, res_op1);
return _r;
}
next_after_fail349:;
}
return NULL_TREE;
}
static tree
generic_simplify_148 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/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]))
|| tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
|| types_match (captures[1], captures[3]))
&& (bitop != BIT_AND_EXPR ||
0
)
&& (
TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
|| (
0
&& TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
|| GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
|| !type_has_mode_precision_p (type)
|| (
0
&& TREE_CODE (captures[3]) != INTEGER_CST
&& tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
&& single_use (captures[0])
&& single_use (captures[2])))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail350;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1693, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail350:;
}
return NULL_TREE;
}
static tree
generic_simplify_149 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail351;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7018, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail351;
return _r;
}
next_after_fail351:;
}
return NULL_TREE;
}
static tree
generic_simplify_150 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TREE_CODE (TREE_TYPE (captures[2])) != BOOLEAN_TYPE
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
&& (TYPE_PRECISION (TREE_TYPE (captures[2])) >= TYPE_PRECISION (type)
|| !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
&& (
0
|| !TREE_SIDE_EFFECTS (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail352;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3320, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[4];
_o1[1] = captures[5];
_r1 = fold_build2_loc (loc, cmp, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[0];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail352:;
}
return NULL_TREE;
}
static tree
generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5830 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
&& ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_UNSIGNED (TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail353;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5833, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail353:;
}
return NULL_TREE;
}
static tree
generic_simplify_152 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!integer_zerop (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail354;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 399, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail354:;
}
return NULL_TREE;
}
static tree
generic_simplify_153 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail355;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3109, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail355:;
return NULL_TREE;
}
static tree
generic_simplify_154 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail356;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1342, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail356:;
return NULL_TREE;
}
static tree
generic_simplify_155 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail357;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3377, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail357:;
return NULL_TREE;
}
static tree
generic_simplify_156 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_UNSIGNED (TREE_TYPE (captures[2]))
&& (TYPE_PRECISION (TREE_TYPE (captures[1]))
>= 2 * TYPE_PRECISION (TREE_TYPE (captures[2])))
&& tree_fits_uhwi_p (captures[4])
&& tree_to_uhwi (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[2]))
&& types_match (captures[2], captures[3])
&& type_has_mode_precision_p (TREE_TYPE (captures[2]))
&& (optab_handler (umulv4_optab, TYPE_MODE (TREE_TYPE (captures[2])))
!= CODE_FOR_nothing)
)
{
{
/* #line 5889 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail358;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail358;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5890, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[2];
_o2[1] = captures[3];
_r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
if (!_r2)
goto next_after_fail358;
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (t);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[4]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
return _r;
}
next_after_fail358:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_157 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/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 5659 "/home/seti/riscv-gnu-toolchain/gcc/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 5669 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == max
)
{
/* #line 5671 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail359;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5672, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail359:;
}
else
{
/* #line 5673 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail360;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5674, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail360:;
}
else
{
/* #line 5675 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail361;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5676, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail361:;
}
else
{
/* #line 5677 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail362;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5678, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail362:;
}
}
}
}
}
else
{
/* #line 5679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == min
)
{
/* #line 5681 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail363;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5682, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail363:;
}
else
{
/* #line 5683 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail364;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5684, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail364:;
}
else
{
/* #line 5685 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail365;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5686, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail365:;
}
else
{
/* #line 5687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail366;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5688, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail366:;
}
}
}
}
}
else
{
/* #line 5689 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == max - 1
)
{
/* #line 5691 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail367;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5692, __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 _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail367:;
}
else
{
/* #line 5696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail368;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5697, __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 _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail368:;
}
}
}
else
{
/* #line 5701 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (cst) == min + 1
)
{
/* #line 5703 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail369;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5704, __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 _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail369:;
}
else
{
/* #line 5708 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail370;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5709, __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 _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail370:;
}
}
}
else
{
/* #line 5713 "/home/seti/riscv-gnu-toolchain/gcc/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 5724 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR || cmp == GT_EXPR
)
{
{
/* #line 5725 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree st = signed_type_for (TREE_TYPE (captures[2]));
/* #line 5727 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst == captures[2] && cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail371;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5728, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != st)
_r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail371:;
}
else
{
/* #line 5729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst == captures[2] && cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail372;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5730, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != st)
_r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail372:;
}
else
{
/* #line 5731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail373;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5732, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail373:;
}
else
{
/* #line 5733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail374;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5734, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (st);
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail374:;
}
}
}
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_158 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/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 4352 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == MAX_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail375;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail375;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail375;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail375;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4353, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail375:;
}
else
{
/* #line 4354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == MIN_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail376;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail376;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail376;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail376;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4355, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail376:;
}
else
{
/* #line 4356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail377;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail377;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail377;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail377;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4357, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail377;
tree res_op0;
{
tree _o1[3], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
{
tree _o3[1], _r3;
_o3[0] = unshare_expr (captures[1]);
if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
_r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
else
_r3 = _o3[0];
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o2[0], _o2[1]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != from_type)
_r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != from_type)
_r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
else
_r2 = _o2[0];
_o1[2] = _r2;
}
_r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail377:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op))
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/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 1136 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (utype
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail378;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail378;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail378;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail378;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail378;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail378;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1137, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = pmop[0];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
{
tree _o3[1], _r3;
_o3[0] = pmop[1];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[5];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail378:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_160 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 255 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail379;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 257, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE(captures[0]));
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail379:;
}
return NULL_TREE;
}
static tree
generic_simplify_161 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail380;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1850, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[0];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail380:;
}
return NULL_TREE;
}
static tree
generic_simplify_162 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
&& INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[1]))
|| TYPE_UNSIGNED (TREE_TYPE (captures[1]))
|| !TYPE_UNSIGNED (type))
&& integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0
)
{
{
/* #line 728 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = TREE_TYPE (captures[1]);
if (!TYPE_OVERFLOW_WRAPS (utype))
utype = unsigned_type_for (utype);
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail381;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail381;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 731, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = build_one_cst (utype);
_r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail381:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_163 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail382;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5939, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail382:;
}
return NULL_TREE;
}
static tree
generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2))
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
|| VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail383;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5259, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail383:;
}
return NULL_TREE;
}
static tree
generic_simplify_165 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (eqne))
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail384;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail384;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2311, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail384:;
}
else
{
/* #line 2312 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail385;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail385;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail385;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2313, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail385:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_166 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail386;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1867, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail386:;
}
return NULL_TREE;
}
static tree
generic_simplify_167 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
)
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail387;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7026, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail387;
return _r;
}
next_after_fail387:;
}
return NULL_TREE;
}
static tree
generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& op != MULT_EXPR
&& op != RDIV_EXPR
&& 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])
|| poly_int_tree_p (captures[3]))
)
{
/* #line 6674 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail388;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6675, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail388:;
}
else
{
{
/* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail389;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6677, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail389:;
}
}
}
else
{
/* #line 6679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (type)
&& DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
== DECIMAL_FLOAT_TYPE_P (type)
)
{
{
/* #line 6682 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree arg0 = strip_float_extensions (captures[2]);
tree arg1 = strip_float_extensions (captures[4]);
tree itype = TREE_TYPE (captures[0]);
tree ty1 = TREE_TYPE (arg0);
tree ty2 = TREE_TYPE (arg1);
enum tree_code code = TREE_CODE (itype);
/* #line 6688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (ty1)
&& FLOAT_TYPE_P (ty2)
)
{
{
/* #line 6690 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newtype = type;
if (TYPE_MODE (ty1) == SDmode
|| TYPE_MODE (ty2) == SDmode
|| TYPE_MODE (type) == SDmode)
newtype = dfloat32_type_node;
if (TYPE_MODE (ty1) == DDmode
|| TYPE_MODE (ty2) == DDmode
|| TYPE_MODE (type) == DDmode)
newtype = dfloat64_type_node;
if (TYPE_MODE (ty1) == TDmode
|| TYPE_MODE (ty2) == TDmode
|| TYPE_MODE (type) == TDmode)
newtype = dfloat128_type_node;
/* #line 6703 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((newtype == dfloat32_type_node
|| newtype == dfloat64_type_node
|| newtype == dfloat128_type_node)
&& newtype == type
&& types_match (newtype, type)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail390;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail390;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail390;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6708, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail390:;
}
else
{
{
/* #line 6709 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
newtype = ty1;
if (TYPE_PRECISION (ty2) > TYPE_PRECISION (newtype))
newtype = ty2;
/* #line 6734 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (newtype) < TYPE_PRECISION (itype)
&& (flag_unsafe_math_optimizations
|| (TYPE_PRECISION (newtype) == TYPE_PRECISION (type)
&& real_can_shorten_arithmetic (TYPE_MODE (itype),
TYPE_MODE (type))
&& !excess_precision_type (newtype)))
&& !types_match (itype, newtype)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail391;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail391;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail391;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6741, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail391:;
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop))
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail392;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1430, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail392:;
}
return NULL_TREE;
}
static tree
generic_simplify_170 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3250 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail393;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3252, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail393:;
}
else
{
/* #line 3253 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail394;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3255, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail394:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_171 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (acmp))
{
{
/* #line 4620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst = uniform_integer_cst_p (captures[1]);
/* #line 4621 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (cst) == -1
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail395;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4622, __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 _r;
_r = fold_build2_loc (loc, acmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail395:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail396;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6213, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail396:;
return NULL_TREE;
}
static tree
generic_simplify_173 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (element_precision (captures[0]) >= element_precision (captures[1])
&& types_match (captures[1], captures[3])
)
{
/* #line 1914 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::lt_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2])))
)
{
/* #line 1915 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail397;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1916, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail397:;
}
else
{
/* #line 1917 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_expr_nonzero_p (captures[1]) && tree_expr_nonzero_p (captures[3])
)
{
{
/* #line 1918 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail398;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1922, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != utype)
_r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != utype)
_r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail398:;
}
}
}
}
else
{
/* #line 1923 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::gt_p (wi::to_wide (captures[2]), 1, TYPE_SIGN (TREE_TYPE (captures[2])))
)
{
/* #line 1924 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail399;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1925, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail399:;
}
else
{
{
/* #line 1926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail400;
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 _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != utype)
_r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != utype)
_r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail400:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_174 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail401;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail401;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 336, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail401:;
}
return NULL_TREE;
}
static tree
generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
/* #line 1552 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail402;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail402;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1553, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
return _r;
}
next_after_fail402:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail403;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail403;
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 _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail403:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_176 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (code2), const enum tree_code ARG_UNUSED (code1))
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cmp = tree_int_cst_compare (captures[2], captures[4]);
bool val;
switch (code2)
{
case EQ_EXPR: val = (cmp == 0); break;
case NE_EXPR: val = (cmp != 0); break;
case LT_EXPR: val = (cmp < 0); break;
case GT_EXPR: val = (cmp > 0); break;
case LE_EXPR: val = (cmp <= 0); break;
case GE_EXPR: val = (cmp >= 0); break;
default: gcc_unreachable ();
}
/* #line 2406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == EQ_EXPR && val
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail404;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail404;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail404;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2406, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail404:;
}
else
{
/* #line 2407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == EQ_EXPR && !val
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail405;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail405;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail405;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2407, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail405:;
}
else
{
/* #line 2408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == NE_EXPR && !val
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail406;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail406;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail406;
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 _r;
_r = captures[3];
return _r;
}
next_after_fail406:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_177 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (COS))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
/* #line 6295 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[1])
&& ! HONOR_INFINITIES (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail407;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6297, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_one_cst (type);
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail407;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail407:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail408;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail408;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1068, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail408:;
return NULL_TREE;
}
static tree
generic_simplify_179 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (pows), const combined_fn ARG_UNUSED (copysigns))
{
{
/* #line 845 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
HOST_WIDE_INT n;
/* #line 846 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail409;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 847, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail409;
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail409:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_180 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (logs), const combined_fn ARG_UNUSED (pows))
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail410;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6057, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail410;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail410:;
}
return NULL_TREE;
}
static tree
generic_simplify_181 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 6755 "/home/seti/riscv-gnu-toolchain/gcc/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 6774 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
)
{
{
/* #line 6775 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree ntype = TREE_TYPE (captures[2]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail411;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6776, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[2];
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[5];
if (TREE_TYPE (_o2[0]) != ntype)
_r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail411:;
}
}
else
{
{
/* #line 6777 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail412;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6778, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
{
tree _o3[1], _r3;
_o3[0] = captures[4];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[5];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail412:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_182 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (FMAX_ALL))
{
/* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_finite_math_only
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail413;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3219, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail413:;
}
return NULL_TREE;
}
static tree
generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail414;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1785, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (op == NE_EXPR ? true : false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail414:;
return NULL_TREE;
}
static tree
generic_simplify_184 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (mod))
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
{
/* #line 655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail415;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 656, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, mod, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != utype)
_r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail415:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_185 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (rotate))
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/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 3606 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree rotate_type = TREE_TYPE (captures[2]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail416;
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;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != rotate_type)
_r2 = fold_build1_loc (loc, NOP_EXPR, rotate_type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail416:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_186 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail417;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2609, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail417:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_187 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail418;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6307, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail418;
return _r;
}
next_after_fail418:;
}
return NULL_TREE;
}
static tree
generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail419;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail419;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3374, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail419:;
return NULL_TREE;
}
static tree
generic_simplify_189 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off0, off1;
tree base0, base1;
int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
off0, off1,
1
);
/* #line 3178 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 1
)
{
/* #line 3179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (minmax == MIN_EXPR
)
{
/* #line 3180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_le (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail420;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail420;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail420;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3181, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail420:;
}
else
{
/* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_gt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail421;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail421;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail421;
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 _r;
_r = captures[2];
return _r;
}
next_after_fail421:;
}
}
}
else
{
/* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_ge (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail422;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail422;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail422;
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 _r;
_r = captures[0];
return _r;
}
next_after_fail422:;
}
else
{
/* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_lt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail423;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail423;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail423;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3187, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail423:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_190 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (outer_op))
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2670 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
)
{
/* #line 2673 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!CONSTANT_CLASS_P (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail424;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2674, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, outer_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail424:;
}
}
else
{
/* #line 2675 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
|| TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail425;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2677, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
{
tree _o3[1], _r3;
_o3[0] = captures[2];
_r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, outer_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail425:;
}
else
{
/* #line 2678 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (type, captures[1])
)
{
{
/* #line 2679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst = const_binop (outer_op, type, captures[0], captures[2]);
/* #line 2680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst && !TREE_OVERFLOW (cst)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail426;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail426;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail426;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2681, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = cst;
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail426:;
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_191 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div), const enum tree_code ARG_UNUSED (mod))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail427;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3842, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail427:;
return NULL_TREE;
}
static tree
generic_simplify_192 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2597 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (type)
|| TYPE_OVERFLOW_WRAPS (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail428;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2599, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail428:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail429;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2600, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail429:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_193 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (eqcmp))
{
/* #line 5283 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
)
{
{
/* #line 5284 "/home/seti/riscv-gnu-toolchain/gcc/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 5292 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail430;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail430;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail430;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5294, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree (ty, mask - rhs);
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (ty);
tree _r;
_r = fold_build2_loc (loc, eqcmp, type, res_op0, res_op1);
return _r;
}
next_after_fail430:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_194 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (ovf))
{
/* #line 5896 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
&& (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) || TYPE_UNSIGNED (TREE_TYPE (captures[1])))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail431;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5900, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail431;
return _r;
}
next_after_fail431:;
}
return NULL_TREE;
}
static tree
generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1642 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
&& wi::to_wide (captures[1]) == element_precision (type) - 1
)
{
{
/* #line 1644 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = TREE_TYPE (captures[0]);
tree ntype = TYPE_UNSIGNED (stype) ? signed_type_for (stype)
: unsigned_type_for (stype);
/* #line 1647 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail432;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1648, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail432:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail433;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1649, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != ntype)
_r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail433:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_196 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail434;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 404, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail434:;
}
return NULL_TREE;
}
static tree
generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2689 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
)
{
/* #line 2692 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!CONSTANT_CLASS_P (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail435;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2693, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail435:;
}
}
else
{
/* #line 2694 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
|| TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail436;
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;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[0];
_r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
_o2[0] = _r3;
}
_o2[1] = captures[1];
_r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail436:;
}
else
{
/* #line 2697 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (type, captures[2])
)
{
{
/* #line 2698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
/* #line 2699 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst && !TREE_OVERFLOW (cst)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail437;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail437;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail437;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2700, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = cst;
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail437:;
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_198 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (SINH), const combined_fn ARG_UNUSED (COSH), const combined_fn ARG_UNUSED (TANH))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail438;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6273, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = maybe_build_call_expr_loc (loc, TANH, type, 1, res_op0);
if (!_r)
goto next_after_fail438;
return _r;
}
next_after_fail438:;
}
return NULL_TREE;
}
static tree
generic_simplify_199 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5506 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
)
{
{
/* #line 5510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
/* #line 5514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail439;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail439;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail439;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5515, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
_o2[1] = shifter;
_r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail439:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail440;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail440;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail440;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5516, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
{
tree _o3[2], _r3;
_o3[0] = captures[0];
_o3[1] = shifter;
_r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail440:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_200 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail441;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7015, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail441;
return _r;
}
next_after_fail441:;
}
return NULL_TREE;
}
static tree
generic_simplify_201 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const combined_fn ARG_UNUSED (ctz))
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool zero_res = false;
HOST_WIDE_INT zero_val = 0;
tree type0 = TREE_TYPE (captures[1]);
int prec = TYPE_PRECISION (type0);
if (ctz == CFN_CTZ
&& CTZ_DEFINED_VALUE_AT_ZERO (SCALAR_TYPE_MODE (type0),
zero_val) == 2)
zero_res = true;
/* #line 7155 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) >= prec
)
{
/* #line 7156 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!zero_res || zero_val != wi::to_widest (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail442;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7157, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (op == EQ_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail442:;
}
}
else
{
/* #line 7158 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!zero_res || zero_val < 0 || zero_val >= prec
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail443;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail443;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7159, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree (type0,
wi::mask (tree_to_uhwi (captures[2]) + 1,
false, prec));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = wide_int_to_tree (type0,
wi::shifted_mask (tree_to_uhwi (captures[2]), 1,
false, prec));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail443:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_202 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail444;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1838, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail444:;
}
return NULL_TREE;
}
static tree
generic_simplify_203 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail445;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail445;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1037, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail445:;
return NULL_TREE;
}
static tree
generic_simplify_204 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail446;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2073, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail446:;
}
return NULL_TREE;
}
static tree
generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (bswap))
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (BITS_PER_UNIT == 8
&& tree_fits_uhwi_p (captures[3])
&& tree_fits_uhwi_p (captures[4])
)
{
{
/* #line 3987 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[3]);
unsigned HOST_WIDE_INT mask = tree_to_uhwi (captures[4]);
unsigned HOST_WIDE_INT lo = bits & 7;
unsigned HOST_WIDE_INT hi = bits - lo;
/* #line 3995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (bits < prec
&& mask < (256u>>lo)
&& bits < TYPE_PRECISION (TREE_TYPE(captures[0]))
)
{
{
/* #line 3998 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned HOST_WIDE_INT ns = (prec - (hi + 8)) + lo;
/* #line 3999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ns == 0
)
{
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail447;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail447;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail447;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4000, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail447:;
}
else
{
{
/* #line 4001 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
tree nst = build_int_cst (integer_type_node, ns);
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail448;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail448;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail448;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4006, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = nst;
_r2 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail448:;
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_206 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/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 3487 "/home/seti/riscv-gnu-toolchain/gcc/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 3541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((mask & zerobits) == mask
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail449;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail449;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail449;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail449;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail449;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3542, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, 0);
return _r;
}
next_after_fail449:;
}
else
{
{
/* #line 3543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
newmask = mask | zerobits;
/* #line 3544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (newmask != mask && (newmask & (newmask + 1)) == 0
)
{
{
/* #line 3545 "/home/seti/riscv-gnu-toolchain/gcc/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 3554 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (prec < HOST_BITS_PER_WIDE_INT
|| newmask == HOST_WIDE_INT_M1U
)
{
{
/* #line 3556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 3558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_int_cst_equal (newmaskt, captures[5])
)
{
/* #line 3559 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (shift_type != TREE_TYPE (captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail450;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail450;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail450;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3560, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != shift_type)
_r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail450:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail451;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail451;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail451;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3561, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail451:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
&& (!FLOAT_TYPE_P (type) || flag_associative_math)
)
{
/* #line 2941 "/home/seti/riscv-gnu-toolchain/gcc/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))))
)
{
/* #line 2946 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0]) || single_use (captures[3])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail452;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2949, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail452:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_208 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POPCOUNT))
{
/* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::bit_and (tree_nonzero_bits (captures[1]), tree_nonzero_bits (captures[3])) == 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail453;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7171, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, res_op0);
if (!_r)
goto next_after_fail453;
return _r;
}
next_after_fail453:;
}
return NULL_TREE;
}
static tree
generic_simplify_209 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 3570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail454;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail454;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail454;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3571, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]),
wi::exact_log2 (wi::to_wide (captures[1])));
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail454:;
}
return NULL_TREE;
}
static tree
generic_simplify_210 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail455;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1715, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail455:;
return NULL_TREE;
}
static tree
generic_simplify_211 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (pfun))
{
{
/* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
wide_int nz = tree_nonzero_bits (captures[0]);
/* #line 7204 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (nz == 1
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail456;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail456;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7205, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail456:;
}
else
{
/* #line 7206 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::popcount (nz) == 1
)
{
{
/* #line 7207 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail457;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail457;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7208, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = build_int_cst (integer_type_node,
wi::ctz (nz));
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, utype, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail457:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_212 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail458;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1720, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[4];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail458:;
return NULL_TREE;
}
static tree
generic_simplify_213 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!integer_zerop (captures[1])
)
{
/* #line 5180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_wide (captures[2]) == 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail459;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5181, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail459:;
}
else
{
/* #line 5182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[1]) == INTEGER_CST
)
{
{
/* #line 5183 "/home/seti/riscv-gnu-toolchain/gcc/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 5189 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ovf
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail460;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail460;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail460;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5190, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail460:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail461;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail461;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail461;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5191, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail461:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree op_type = TREE_TYPE (captures[4]);
/* #line 7458 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (element_precision (type) == element_precision (op_type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail462;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7459, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[5], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_o1[2] = captures[2];
_o1[3] = captures[3];
{
tree _o2[1], _r2;
_o2[0] = captures[5];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
_o1[4] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
if (!_r1)
goto next_after_fail462;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[4]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
return _r;
}
next_after_fail462:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_215 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
)
{
{
/* #line 5196 "/home/seti/riscv-gnu-toolchain/gcc/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 5202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ovf
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail463;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail463;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail463;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5203, __FILE__, __LINE__);
{
tree _r;
_r = 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]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail463:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail464;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail464;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail464;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5206, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[0]), prod);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail464:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_216 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (logic), const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (ext))
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TREE_CODE (captures[1]) != INTEGER_CST
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail465;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6790, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, ext, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail465:;
}
return NULL_TREE;
}
static tree
generic_simplify_217 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (neeq))
{
{
/* #line 2264 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
/* #line 2265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[0], captures[2], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail466;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2266, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = build_int_cst_type (inner_type, diff);
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail466:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4765 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp != NE_EXPR
|| ! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
|| ! tree_expr_maybe_nan_p (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail467;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4768, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail467:;
}
return NULL_TREE;
}
static tree
generic_simplify_219 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (copysigns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail468;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 879, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, copysigns, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail468;
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail468:;
return NULL_TREE;
}
static tree
generic_simplify_220 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail469;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1512, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail469:;
}
return NULL_TREE;
}
static tree
generic_simplify_221 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (eqne))
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail470;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail470;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2323, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail470:;
}
else
{
/* #line 2324 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail471;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail471;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail471;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2325, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail471:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_222 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail472;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail472;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2336, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail472:;
return NULL_TREE;
}
static tree
generic_simplify_223 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 5387 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off; tree base;
/* #line 5391 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SSA_NAME_IS_DEFAULT_DEF (captures[1])
&& TREE_CODE (SSA_NAME_VAR (captures[1])) == PARM_DECL
&& (base = get_base_address (TREE_OPERAND (captures[0], 0)))
&& TREE_CODE (base) == VAR_DECL
&& auto_var_in_fn_p (base, current_function_decl)
)
{
/* #line 5396 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == NE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail473;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5397, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail473:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail474;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5398, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail474:;
}
}
else
{
/* #line 5400 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((base = get_addr_base_and_unit_offset (TREE_OPERAND (captures[0], 0), &off))
&& TREE_CODE (base) == MEM_REF
&& TREE_OPERAND (base, 0) == captures[1]
)
{
{
/* #line 5403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
off += mem_ref_offset (base).force_shwi ();
/* #line 5404 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_ne (off, 0)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail475;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5405, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail475:;
}
else
{
/* #line 5406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_eq (off, 0)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail476;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5407, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == EQ_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail476:;
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_224 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail477;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6323, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[1] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
if (!_r1)
goto next_after_fail477;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail477:;
}
return NULL_TREE;
}
static tree
generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail478;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail478;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2346, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail478:;
return NULL_TREE;
}
static tree
generic_simplify_226 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (cmp), const combined_fn ARG_UNUSED (ctz))
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool ok = true;
HOST_WIDE_INT val = 0;
if (!tree_fits_shwi_p (captures[2]))
ok = false;
else
{
val = tree_to_shwi (captures[2]);
if (op == GT_EXPR || op == LE_EXPR)
{
if (val == HOST_WIDE_INT_MAX)
ok = false;
else
val++;
}
}
bool zero_res = false;
HOST_WIDE_INT zero_val = 0;
tree type0 = TREE_TYPE (captures[1]);
int prec = TYPE_PRECISION (type0);
if (ctz == CFN_CTZ
&& CTZ_DEFINED_VALUE_AT_ZERO (SCALAR_TYPE_MODE (type0),
zero_val) == 2)
zero_res = true;
/* #line 7132 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (val <= 0
)
{
/* #line 7133 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ok && (!zero_res || zero_val >= val)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail479;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail479;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7134, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == EQ_EXPR ? true : false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail479:;
}
}
else
{
/* #line 7135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (val >= prec
)
{
/* #line 7136 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ok && (!zero_res || zero_val < val)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail480;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail480;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7137, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail480:;
}
}
else
{
/* #line 7138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ok && (!zero_res || zero_val < 0 || zero_val >= prec)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail481;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail481;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7139, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree (type0,
wi::mask (val, false, prec));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (type0);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail481:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_227 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (inner_op), const enum tree_code ARG_UNUSED (outer_op))
{
{
/* #line 2155 "/home/seti/riscv-gnu-toolchain/gcc/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 2178 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!fail && (C0 & zero_mask_not) == 0
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail482;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail482;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail482;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail482;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2179, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (type, cst_emit);
tree _r;
_r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
return _r;
}
next_after_fail482:;
}
else
{
/* #line 2180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail483;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail483;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail483;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail483;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2181, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (type, cst_emit);
tree _r;
_r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
return _r;
}
next_after_fail483:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_228 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::bit_and_not (wi::to_wide (captures[1]), get_nonzero_bits (captures[0])) != 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail484;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2138, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail484:;
}
return NULL_TREE;
}
static tree
generic_simplify_229 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift))
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
)
{
{
/* #line 3581 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
/* #line 3582 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (mask
)
{
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail485;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail485;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail485;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3583, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = mask;
tree _r;
_r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
return _r;
}
next_after_fail485:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_230 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail486;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7012, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail486;
return _r;
}
next_after_fail486:;
}
return NULL_TREE;
}
static tree
generic_simplify_231 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/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 3592 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree shift_type = TREE_TYPE (captures[2]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail487;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3594, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != shift_type)
_r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail487:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_232 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5849 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail488;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail488;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5851, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail488:;
}
return NULL_TREE;
}
static tree
generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const combined_fn ARG_UNUSED (bswap))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail489;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3970, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail489;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail489:;
return NULL_TREE;
}
static tree
generic_simplify_234 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail490;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail490;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5859, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail490:;
}
return NULL_TREE;
}
static tree
generic_simplify_235 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail491;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2612, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail491:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_236 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5849 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail492;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail492;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5851, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail492:;
}
return NULL_TREE;
}
static tree
generic_simplify_237 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail493;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail493;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 640, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail493:;
return NULL_TREE;
}
static tree
generic_simplify_238 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
&& !integer_zerop (captures[0])
&& (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail494;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 420, __FILE__, __LINE__);
{
tree _r;
_r = build_one_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail494:;
}
return NULL_TREE;
}
static tree
generic_simplify_239 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (code2), const enum tree_code ARG_UNUSED (code1))
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cmp = tree_int_cst_compare (captures[2], captures[4]);
bool val;
switch (code2)
{
case EQ_EXPR: val = (cmp == 0); break;
case NE_EXPR: val = (cmp != 0); break;
case LT_EXPR: val = (cmp < 0); break;
case GT_EXPR: val = (cmp > 0); break;
case LE_EXPR: val = (cmp <= 0); break;
case GE_EXPR: val = (cmp >= 0); break;
default: gcc_unreachable ();
}
/* #line 2472 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == EQ_EXPR && val
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail495;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail495;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail495;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2472, __FILE__, __LINE__);
{
tree _r;
_r = captures[3];
return _r;
}
next_after_fail495:;
}
else
{
/* #line 2473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == NE_EXPR && val
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail496;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail496;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail496;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2473, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail496:;
}
else
{
/* #line 2474 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == NE_EXPR && !val
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail497;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail497;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail497;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2474, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail497:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2568 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (type)
&& !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail498;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2570, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail498:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_241 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail499;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6283, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_one_cst (type);
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, TAN, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail499;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail499:;
}
return NULL_TREE;
}
static tree
generic_simplify_242 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
&& TYPE_OVERFLOW_UNDEFINED (type)
&& !integer_zerop (captures[0])
&& (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail500;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 437, __FILE__, __LINE__);
{
tree _r;
_r = build_minus_one_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail500:;
}
return NULL_TREE;
}
static tree
generic_simplify_243 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 672 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail501;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 682, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail501:;
}
return NULL_TREE;
}
static tree
generic_simplify_244 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail502;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1802, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_each_one_cst (type);
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail502:;
return NULL_TREE;
}
static tree
generic_simplify_245 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1596 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
&& !HONOR_SIGNED_ZEROS (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail503;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1598, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail503:;
}
return NULL_TREE;
}
static tree
generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail504;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2062, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail504:;
}
return NULL_TREE;
}
static tree
generic_simplify_247 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 7729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail505;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7730, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[2])) goto next_after_fail505;
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[3], _r2;
_o2[0] = unshare_expr (captures[2]);
_o2[1] = captures[2];
_o2[2] = captures[4];
_r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
_o1[0] = _r2;
}
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[5];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail505:;
}
return NULL_TREE;
}
static tree
generic_simplify_248 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (minmax))
{
/* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail506;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3207, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail506:;
}
return NULL_TREE;
}
static tree
generic_simplify_249 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 3453 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[0]) > 0
)
{
{
/* #line 3454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int c1 = wi::clz (wi::to_wide (captures[0]));
int c2 = wi::clz (wi::to_wide (captures[2]));
/* #line 3456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (c1 > c2
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail507;
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail507;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail507;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail507;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3457, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail507:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail508;
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail508;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail508;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail508;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3458, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_int_cst (TREE_TYPE (captures[1]), c2 - c1);
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail508:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_250 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail509;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail509;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1291, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail509:;
return NULL_TREE;
}
static tree
generic_simplify_251 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 3906 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail510;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3909, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail510:;
}
return NULL_TREE;
}
static tree
generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 off0, off1;
tree base0, base1;
int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
off0, off1,
1
);
/* #line 3178 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (equal == 1
)
{
/* #line 3179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (minmax == MIN_EXPR
)
{
/* #line 3180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_le (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail511;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail511;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail511;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3181, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail511:;
}
else
{
/* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_gt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail512;
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail512;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail512;
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 _r;
_r = captures[2];
return _r;
}
next_after_fail512:;
}
}
}
else
{
/* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_ge (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail513;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail513;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail513;
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 _r;
_r = captures[0];
return _r;
}
next_after_fail513:;
}
else
{
/* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (known_lt (off0, off1)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail514;
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail514;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail514;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3187, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail514:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_253 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (type)
&& ! HONOR_NANS (type)
&& ! HONOR_INFINITIES (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail515;
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 _r;
_r = build_minus_one_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail515:;
}
return NULL_TREE;
}
static tree
generic_simplify_254 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail516;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1838, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail516:;
}
return NULL_TREE;
}
static tree
generic_simplify_255 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/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]))
|| tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
|| types_match (captures[1], captures[3]))
&& (bitop != BIT_AND_EXPR ||
0
)
&& (
TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
|| (
0
&& TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
|| GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
|| !type_has_mode_precision_p (type)
|| (
0
&& TREE_CODE (captures[3]) != INTEGER_CST
&& tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
&& single_use (captures[0])
&& single_use (captures[2])))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail517;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1693, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail517:;
}
return NULL_TREE;
}
static tree
generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
&& tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
&& wi::to_wide (captures[4]) != 0
&& single_use (captures[1])
)
{
{
/* #line 5816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail518;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail518;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5820, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
wi::max_value (prec, sign)
- wi::to_wide (captures[4]));
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail518:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_257 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (op))
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
/* #line 4385 "/home/seti/riscv-gnu-toolchain/gcc/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 4392 "/home/seti/riscv-gnu-toolchain/gcc/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 4456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == MAX_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail519;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail519;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail519;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail519;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail519;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4457, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = wide_int_to_tree (from_type, real_c1);
_r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = wide_int_to_tree (from_type, c2);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail519:;
}
else
{
/* #line 4459 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code == MIN_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail520;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail520;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail520;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail520;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail520;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4460, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = wide_int_to_tree (from_type, real_c1);
_r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = wide_int_to_tree (from_type, c2);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail520:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_258 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 991 "/home/seti/riscv-gnu-toolchain/gcc/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 (_p1)) goto next_after_fail521;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail521;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 994, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail521:;
}
return NULL_TREE;
}
static tree
generic_simplify_259 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/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 5311 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
/* #line 5312 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem && !TREE_OVERFLOW (tem)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail522;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail522;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5313, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
return _r;
}
next_after_fail522:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_260 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail523;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1857, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, cmp, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = build_zero_cst (type);
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail523:;
}
return NULL_TREE;
}
static tree
generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!integer_zerop (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail524;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 636, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail524:;
}
return NULL_TREE;
}
static tree
generic_simplify_262 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
/* #line 7021 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail525;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7022, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail525;
return _r;
}
next_after_fail525:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_263 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TREE_CODE (TREE_TYPE (captures[2])) != BOOLEAN_TYPE
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
&& (TYPE_PRECISION (TREE_TYPE (captures[2])) >= TYPE_PRECISION (type)
|| !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
&& (
0
|| !TREE_SIDE_EFFECTS (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail526;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3308, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[4];
_o1[1] = captures[5];
_r1 = fold_build2_loc (loc, cmp, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[0];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail526:;
}
return NULL_TREE;
}
static tree
generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/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))
&& (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
|| (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
&& (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
|| (element_precision (type)
== element_precision (TREE_TYPE (captures[2])))
|| (INTEGRAL_TYPE_P (type)
&& (tree_nonzero_bits (captures[0])
& wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
true,
element_precision (type))) == 0))))
)
{
/* #line 384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!VECTOR_TYPE_P (type)
&& useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
&& element_precision (TREE_TYPE (captures[1])) < element_precision (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail527;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 387, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail527:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail528;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail528;
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 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail528:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_265 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail529;
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;
res_op0 = captures[3];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail529:;
}
return NULL_TREE;
}
static tree
generic_simplify_266 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail530;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1843, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail530;
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
_o2[0] = unshare_expr (captures[1]);
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail530:;
return NULL_TREE;
}
static tree
generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
{
/* #line 4914 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR,
TREE_TYPE (captures[1]), captures[2], captures[1]);
/* #line 4919 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem && !TREE_OVERFLOW (tem)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail531;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail531;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail531;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4920, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail531:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_268 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail532;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail532;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 625, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail532:;
return NULL_TREE;
}
static tree
generic_simplify_269 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_associative_math
)
{
{
/* #line 4929 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
/* #line 4930 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem && !TREE_OVERFLOW (tem)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail533;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail533;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail533;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4931, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = tem;
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail533:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_270 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail534;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail534;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1063, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail534:;
return NULL_TREE;
}
static tree
generic_simplify_271 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (eqne))
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail535;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail535;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2311, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail535:;
}
else
{
/* #line 2312 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail536;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail536;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail536;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2313, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail536:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_272 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
)
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail537;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7046, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail537;
return _r;
}
next_after_fail537:;
}
return NULL_TREE;
}
static tree
generic_simplify_273 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
/* #line 1552 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail538;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail538;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1553, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
return _r;
}
next_after_fail538:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail539;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail539;
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 _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail539:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/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 3592 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree shift_type = TREE_TYPE (captures[2]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail540;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3594, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != shift_type)
_r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail540:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_275 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ocmp))
{
/* #line 2100 "/home/seti/riscv-gnu-toolchain/gcc/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 (_p1)) goto next_after_fail541;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail541;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2104, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ocmp, type, res_op0, res_op1);
return _r;
}
next_after_fail541:;
}
return NULL_TREE;
}
static tree
generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
/* #line 1820 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
|| !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail542;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail542;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1822, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail542:;
}
return NULL_TREE;
}
static tree
generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2282 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (POINTER_TYPE_P (TREE_TYPE (captures[0]))
&& tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
{
/* #line 2284 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned int align;
unsigned HOST_WIDE_INT bitpos;
get_pointer_alignment_1 (captures[0], &align, &bitpos);
/* #line 2290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::ltu_p (wi::to_wide (captures[1]), align / BITS_PER_UNIT)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail543;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail543;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail543;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2291, __FILE__, __LINE__);
{
tree _r;
_r = wide_int_to_tree (type, (wi::to_wide (captures[1])
& (bitpos / BITS_PER_UNIT)));
return _r;
}
next_after_fail543:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_278 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
&& (!FLOAT_TYPE_P (type) || flag_associative_math)
)
{
/* #line 2955 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
)
{
/* #line 2958 "/home/seti/riscv-gnu-toolchain/gcc/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))))
|| (plusminus == PLUS_EXPR
? expr_not_equal_to (captures[2],
wi::max_value (TYPE_PRECISION (type), SIGNED))
: (expr_not_equal_to (captures[2],
wi::min_value (TYPE_PRECISION (type), SIGNED))
&& expr_not_equal_to (captures[2],
wi::min_value (TYPE_PRECISION (type), SIGNED)
+ 1))))))
&& single_use (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail544;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2978, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = build_one_cst (type);
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail544:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_279 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1167 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail545;
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 _r;
_r = constant_boolean_node (cmp == LT_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail545:;
}
return NULL_TREE;
}
static tree
generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail546;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail546;
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 _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail546:;
return NULL_TREE;
}
static tree
generic_simplify_281 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail547;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 976, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail547:;
return NULL_TREE;
}
static tree
generic_simplify_282 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (div))
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (type)
)
{
/* #line 754 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail548;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 755, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail548:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail549;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail549;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2346, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail549:;
return NULL_TREE;
}
static tree
generic_simplify_284 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 1900 "/home/seti/riscv-gnu-toolchain/gcc/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 1905 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = signed_type_for (TREE_TYPE (captures[0]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail550;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1906, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != stype)
_r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_int_cst (stype, 0);
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail550:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_285 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail551;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1456, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail551:;
}
return NULL_TREE;
}
static tree
generic_simplify_286 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 3047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type)
&& (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[3])) == 0
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail552;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail552;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail552;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3049, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (type, wi::to_wide (captures[2]) + wi::to_wide (captures[4]));
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail552:;
}
return NULL_TREE;
}
static tree
generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail553;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail553;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5841, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail553:;
}
return NULL_TREE;
}
static tree
generic_simplify_288 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail554;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2585, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail554:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_289 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& op != MULT_EXPR
&& op != RDIV_EXPR
&& 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])
|| poly_int_tree_p (captures[3]))
)
{
/* #line 6674 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail555;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6675, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail555:;
}
else
{
{
/* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail556;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6677, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail556:;
}
}
}
else
{
/* #line 6679 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (type)
&& DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
== DECIMAL_FLOAT_TYPE_P (type)
)
{
{
/* #line 6682 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree arg0 = strip_float_extensions (captures[2]);
tree arg1 = strip_float_extensions (captures[4]);
tree itype = TREE_TYPE (captures[0]);
tree ty1 = TREE_TYPE (arg0);
tree ty2 = TREE_TYPE (arg1);
enum tree_code code = TREE_CODE (itype);
/* #line 6688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (ty1)
&& FLOAT_TYPE_P (ty2)
)
{
{
/* #line 6690 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newtype = type;
if (TYPE_MODE (ty1) == SDmode
|| TYPE_MODE (ty2) == SDmode
|| TYPE_MODE (type) == SDmode)
newtype = dfloat32_type_node;
if (TYPE_MODE (ty1) == DDmode
|| TYPE_MODE (ty2) == DDmode
|| TYPE_MODE (type) == DDmode)
newtype = dfloat64_type_node;
if (TYPE_MODE (ty1) == TDmode
|| TYPE_MODE (ty2) == TDmode
|| TYPE_MODE (type) == TDmode)
newtype = dfloat128_type_node;
/* #line 6703 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((newtype == dfloat32_type_node
|| newtype == dfloat64_type_node
|| newtype == dfloat128_type_node)
&& newtype == type
&& types_match (newtype, type)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail557;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail557;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail557;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6708, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[4];
if (TREE_TYPE (_o1[0]) != newtype)
_r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail557:;
}
else
{
{
/* #line 6709 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
newtype = ty1;
if (TYPE_PRECISION (ty2) > TYPE_PRECISION (newtype))
newtype = ty2;
/* #line 6734 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (newtype) < TYPE_PRECISION (itype)
&& (flag_unsafe_math_optimizations
|| (TYPE_PRECISION (newtype) == TYPE_PRECISION (type)
&& real_can_shorten_arithmetic (TYPE_MODE (itype),
TYPE_MODE (type))
&& !excess_precision_type (newtype)))
&& !types_match (itype, newtype)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail558;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail558;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail558;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6741, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != newtype)
_r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail558:;
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_290 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail559;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail559;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 342, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail559:;
}
return NULL_TREE;
}
static tree
generic_simplify_291 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail560;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail560;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail560;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4691, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail560:;
}
return NULL_TREE;
}
static tree
generic_simplify_292 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (coss), const combined_fn ARG_UNUSED (copysigns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail561;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 838, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, coss, type, 1, res_op0);
if (!_r)
goto next_after_fail561;
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail561:;
return NULL_TREE;
}
static tree
generic_simplify_293 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
&& !TYPE_OVERFLOW_SANITIZED (type)
)
{
{
/* #line 2538 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail562;
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 _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != t1)
_r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != t1)
_r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail562:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_294 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
/* #line 6262 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TREE_OVERFLOW (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail563;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6263, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = build_one_cst (type);
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail563;
return _r;
}
next_after_fail563:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_295 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail564;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5319, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail564:;
return NULL_TREE;
}
static tree
generic_simplify_296 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
)
{
{
/* #line 5868 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail565;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail565;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5869, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[2];
_o2[1] = captures[1];
_r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
if (!_r2)
goto next_after_fail565;
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (t);
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail565:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_297 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op))
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/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 1125 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (utype
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail566;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail566;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail566;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail566;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail566;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail566;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1126, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = pmop[0];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
{
tree _o3[1], _r3;
_o3[0] = pmop[1];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[5];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail566:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_298 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
&& (!FLOAT_TYPE_P (type) || flag_associative_math)
)
{
/* #line 2955 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
)
{
/* #line 2981 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!ANY_INTEGRAL_TYPE_P (type)
|| TYPE_OVERFLOW_WRAPS (type)
|| (INTEGRAL_TYPE_P (type)
&& ((tree_expr_nonzero_p (captures[1])
&& (plusminus == MINUS_EXPR
|| expr_not_equal_to (captures[1],
wi::minus_one (TYPE_PRECISION (type)))))
|| expr_not_equal_to (captures[2],
(plusminus == PLUS_EXPR
? wi::max_value (TYPE_PRECISION (type), SIGNED)
: wi::min_value (TYPE_PRECISION (type), SIGNED))))))
&& single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail567;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2997, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = build_one_cst (type);
_r1 = fold_build2_loc (loc, plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail567:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_299 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (code2), const enum tree_code ARG_UNUSED (code1))
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cmp = tree_int_cst_compare (captures[2], captures[4]);
bool val;
switch (code2)
{
case EQ_EXPR: val = (cmp == 0); break;
case NE_EXPR: val = (cmp != 0); break;
case LT_EXPR: val = (cmp < 0); break;
case GT_EXPR: val = (cmp > 0); break;
case LE_EXPR: val = (cmp <= 0); break;
case GE_EXPR: val = (cmp >= 0); break;
default: gcc_unreachable ();
}
/* #line 2406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == EQ_EXPR && val
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail568;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail568;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail568;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2406, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail568:;
}
else
{
/* #line 2407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == EQ_EXPR && !val
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail569;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail569;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail569;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2407, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail569:;
}
else
{
/* #line 2408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (code1 == NE_EXPR && !val
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail570;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail570;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail570;
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 _r;
_r = captures[3];
return _r;
}
next_after_fail570:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_300 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail571;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 861, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail571;
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail571:;
return NULL_TREE;
}
static tree
generic_simplify_301 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
{
/* #line 3414 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned int prec = element_precision (type);
/* #line 3415 "/home/seti/riscv-gnu-toolchain/gcc/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 3419 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned int low = (tree_to_uhwi (captures[1])
+ tree_to_uhwi (captures[2]));
/* #line 3423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (low >= prec
)
{
/* #line 3424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (op == LROTATE_EXPR || op == RROTATE_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail572;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail572;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail572;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3425, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_int_cst (TREE_TYPE (captures[1]), low % prec);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail572:;
}
else
{
/* #line 3426 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail573;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail573;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail573;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3427, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail573:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail574;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail574;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail574;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3428, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_int_cst (TREE_TYPE (captures[1]), prec - 1);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail574:;
}
}
}
else
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail575;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail575;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail575;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3429, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_int_cst (TREE_TYPE (captures[1]), low);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail575:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_302 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail576;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 865, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail576;
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail576:;
return NULL_TREE;
}
static tree
generic_simplify_303 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail577;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail577;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5246, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail577:;
return NULL_TREE;
}
static tree
generic_simplify_304 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail578;
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;
res_op0 = captures[3];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[3]));
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail578:;
}
return NULL_TREE;
}
static tree
generic_simplify_305 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 3064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type)
&& (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[1])) == 0
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail579;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail579;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3066, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (type,
wi::add (wi::to_wide (captures[2]), 1));
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail579:;
}
return NULL_TREE;
}
static tree
generic_simplify_306 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
&& !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
&& !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
&& !TYPE_SATURATING (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail580;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail580;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1411, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail580:;
}
return NULL_TREE;
}
static tree
generic_simplify_307 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
{
/* #line 3446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int c1 = wi::clz (wi::to_wide (captures[0]));
int c2 = wi::clz (wi::to_wide (captures[2]));
/* #line 3448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (c1 < c2
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail581;
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail581;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail581;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail581;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3449, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail581:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail582;
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail582;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail582;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail582;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3450, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_int_cst (TREE_TYPE (captures[1]), c1 - c2);
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail582:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_308 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (coshs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts))
{
/* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!flag_errno_math
)
{
{
/* #line 6186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t_one = build_one_cst (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail583;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6187, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail583;
tree res_op0;
res_op0 = t_one;
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = t_one;
_o3[1] = unshare_expr (captures[1]);
_r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
{
tree _o3[2], _r3;
_o3[0] = t_one;
_o3[1] = captures[1];
_r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail583;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail583:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_309 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 4593 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail584;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4598, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[3], _r2;
_o2[0] = captures[2];
{
tree _o3[1], _r3;
_o3[0] = captures[3];
_r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
_o2[1] = _r3;
}
_o2[2] = captures[4];
_r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail584:;
}
return NULL_TREE;
}
static tree
generic_simplify_310 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail585;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail585;
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 _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail585:;
return NULL_TREE;
}
static tree
generic_simplify_311 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (copysigns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail586;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 885, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail586;
tree res_op0;
res_op0 = unshare_expr (captures[1]);
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail586:;
return NULL_TREE;
}
static tree
generic_simplify_312 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail587;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail587;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1037, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
return _r;
}
next_after_fail587:;
return NULL_TREE;
}
static tree
generic_simplify_313 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (ovf))
{
/* #line 5903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
&& (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) || TYPE_UNSIGNED (TREE_TYPE (captures[2])))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail588;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5907, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail588;
return _r;
}
next_after_fail588:;
}
return NULL_TREE;
}
static tree
generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail589;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6218, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail589:;
return NULL_TREE;
}
static tree
generic_simplify_315 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail590;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail590;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 354, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail590:;
return NULL_TREE;
}
static tree
generic_simplify_316 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/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 5335 "/home/seti/riscv-gnu-toolchain/gcc/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 5345 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[2]) == INTEGER_CST
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail591;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail591;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5346, __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 _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail591:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail592;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail592;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5348, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
_r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail592:;
}
}
else
{
/* #line 5350 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
)
{
/* #line 5352 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail593;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5364, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
_r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail593:;
}
else
{
/* #line 5365 "/home/seti/riscv-gnu-toolchain/gcc/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 5368 "/home/seti/riscv-gnu-toolchain/gcc/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 5375 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (above || below
)
{
/* #line 5376 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == EQ_EXPR || cmp == NE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail594;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5377, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail594:;
}
else
{
/* #line 5378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR || cmp == LE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail595;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5379, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (above ? true : false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail595:;
}
else
{
/* #line 5380 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == GT_EXPR || cmp == GE_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail596;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5381, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (above ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail596:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_317 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail597;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6234, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail597:;
return NULL_TREE;
}
static tree
generic_simplify_318 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5416 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail598;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5418, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail598:;
}
return NULL_TREE;
}
static tree
generic_simplify_319 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail599;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1710, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail599:;
return NULL_TREE;
}
static tree
generic_simplify_320 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (fns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail600;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6198, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, fns, type, 1, res_op0);
if (!_r)
goto next_after_fail600;
return _r;
}
next_after_fail600:;
return NULL_TREE;
}
static tree
generic_simplify_321 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/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 3487 "/home/seti/riscv-gnu-toolchain/gcc/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 3541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((mask & zerobits) == mask
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail601;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail601;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail601;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail601;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3542, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, 0);
return _r;
}
next_after_fail601:;
}
else
{
{
/* #line 3543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
newmask = mask | zerobits;
/* #line 3544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (newmask != mask && (newmask & (newmask + 1)) == 0
)
{
{
/* #line 3545 "/home/seti/riscv-gnu-toolchain/gcc/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 3554 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (prec < HOST_BITS_PER_WIDE_INT
|| newmask == HOST_WIDE_INT_M1U
)
{
{
/* #line 3556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 3558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_int_cst_equal (newmaskt, captures[5])
)
{
/* #line 3559 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (shift_type != TREE_TYPE (captures[2])
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail602;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail602;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail602;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail602;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3560, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != shift_type)
_r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail602:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail603;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail603;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail603;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3561, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail603:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_322 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (HYPOT))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail604;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6208, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail604:;
return NULL_TREE;
}
static tree
generic_simplify_323 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail605;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6228, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail605:;
return NULL_TREE;
}
static tree
generic_simplify_324 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
&& !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
&& !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
&& !TYPE_SATURATING (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail606;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail606;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1402, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail606:;
}
return NULL_TREE;
}
static tree
generic_simplify_325 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = uniform_vector_p (captures[1]);
/* #line 3384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail607;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3385, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail607:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_326 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (rotate), const enum tree_code ARG_UNUSED (invrot), const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail608;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3616, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail608:;
return NULL_TREE;
}
static tree
generic_simplify_327 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (rotate), const enum tree_code ARG_UNUSED (invrot), const enum tree_code ARG_UNUSED (cmp))
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail609;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail609;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail609;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3620, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = const_binop (invrot, TREE_TYPE (captures[0]), captures[2], captures[1]);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail609:;
return NULL_TREE;
}
static tree
generic_simplify_328 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (TANH), const combined_fn ARG_UNUSED (SINH), const combined_fn ARG_UNUSED (COSH))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail610;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6278, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_one_cst (type);
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, COSH, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail610;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail610:;
}
return NULL_TREE;
}
static tree
generic_simplify_329 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), 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 (_p1)) goto next_after_fail611;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail611;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7179, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
tree _r;
_r = fold_build2_loc (loc, rep, type, res_op0, res_op1);
return _r;
}
next_after_fail611:;
return NULL_TREE;
}
static tree
generic_simplify_330 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POPCOUNT), const combined_fn ARG_UNUSED (PARITY))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail612;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail612;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7184, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
if (!_r)
goto next_after_fail612;
return _r;
}
next_after_fail612:;
return NULL_TREE;
}
static tree
generic_simplify_331 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
&& (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail613;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4803, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
return _r;
}
next_after_fail613:;
}
return NULL_TREE;
}
static tree
generic_simplify_332 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (PARITY))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail614;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7190, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
if (!_r)
goto next_after_fail614;
return _r;
}
next_after_fail614:;
return NULL_TREE;
}
static tree
generic_simplify_333 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (PARITY))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail615;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7195, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
if (!_r)
goto next_after_fail615;
return _r;
}
next_after_fail615:;
return NULL_TREE;
}
static tree
generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail616;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2603, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail616:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_335 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
&& types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
&& tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
&& wi::to_wide (captures[4]) != 0
&& single_use (captures[1])
)
{
{
/* #line 5816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail617;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail617;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5820, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[3]),
wi::max_value (prec, sign)
- wi::to_wide (captures[4]));
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail617:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_336 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree op_type = TREE_TYPE (captures[3]);
/* #line 7444 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (element_precision (type) == element_precision (op_type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail618;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7445, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[4], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_o1[2] = captures[2];
{
tree _o2[1], _r2;
_o2[0] = captures[4];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
_o1[3] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
if (!_r1)
goto next_after_fail618;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail618:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_337 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/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 (_p0)) goto next_after_fail619;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail619;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail619;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1443, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail619:;
}
return NULL_TREE;
}
static tree
generic_simplify_338 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (fns))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail620;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6203, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail620:;
return NULL_TREE;
}
static tree
generic_simplify_339 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail621;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail621;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4681, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail621:;
}
return NULL_TREE;
}
static tree
generic_simplify_340 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail622;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail622;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2356, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail622:;
return NULL_TREE;
}
static tree
generic_simplify_341 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize && canonicalize_math_p ()
&& targetm.libc_has_function (function_c99_misc, NULL_TREE)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail623;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6436, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail623;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail623:;
}
return NULL_TREE;
}
static tree
generic_simplify_342 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail624;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2620, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail624:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_343 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail625;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail625;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 342, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail625:;
}
return NULL_TREE;
}
static tree
generic_simplify_344 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shiftrotate))
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = uniform_vector_p (captures[1]);
/* #line 3384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail626;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3385, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail626:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_345 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (~wi::to_wide (captures[1]) == wi::to_wide (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail627;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1027, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail627:;
}
return NULL_TREE;
}
static tree
generic_simplify_346 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (eqne))
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail628;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail628;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail628;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2365, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail628:;
}
else
{
/* #line 2366 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail629;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail629;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2367, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail629:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_347 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2880 "/home/seti/riscv-gnu-toolchain/gcc/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 2884 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail630;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2885, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail630:;
}
}
else
{
/* #line 2886 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail631;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2900, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail631:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_348 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (eqne))
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == EQ_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail632;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail632;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail632;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2365, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail632:;
}
else
{
/* #line 2366 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (eqne == NE_EXPR
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail633;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail633;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2367, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail633:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_349 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
)
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail634;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7040, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail634;
return _r;
}
next_after_fail634:;
}
return NULL_TREE;
}
static tree
generic_simplify_350 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (POW))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail635;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6302, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail635;
return _r;
}
next_after_fail635:;
}
return NULL_TREE;
}
static tree
generic_simplify_351 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail636;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail636;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5246, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail636:;
return NULL_TREE;
}
static tree
generic_simplify_352 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
&& tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
)
{
/* #line 1503 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[4]) && single_use (captures[5])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail637;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail637;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1504, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[6];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail637:;
}
else
{
/* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0]) && single_use (captures[1])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail638;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail638;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1506, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail638:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_353 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail639;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1775, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail639:;
return NULL_TREE;
}
static tree
generic_simplify_354 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 644 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail640;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 648, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail640:;
}
return NULL_TREE;
}
static tree
generic_simplify_355 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (fold_real_zero_addition_p (type, captures[0], captures[1], 0)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail641;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 199, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail641:;
}
return NULL_TREE;
}
static tree
generic_simplify_356 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
)
{
{
/* #line 5868 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail642;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail642;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5869, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[2];
_o2[1] = captures[1];
_r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
if (!_r2)
goto next_after_fail642;
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (t);
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail642:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_357 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_single_nonzero_warnv_p (captures[0], NULL)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail643;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail643;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5462, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail643:;
}
return NULL_TREE;
}
static tree
generic_simplify_358 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree op_type = TREE_TYPE (captures[6]);
/* #line 7463 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse_conditions_p (captures[0], captures[2])
&& element_precision (type) == element_precision (op_type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail644;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7465, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[5], _r1;
_o1[0] = captures[2];
_o1[1] = captures[3];
_o1[2] = captures[4];
_o1[3] = captures[5];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
_o1[4] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
if (!_r1)
goto next_after_fail644;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[6]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
return _r;
}
next_after_fail644:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_359 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4754 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
|| ! tree_expr_maybe_nan_p (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail645;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4756, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail645:;
}
else
{
/* #line 4757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp != EQ_EXPR
&& (! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
|| ! flag_trapping_math)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail646;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4761, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = unshare_expr (captures[0]);
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail646:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_360 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (HYPOT))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail647;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6373, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_real_truncate (type, dconst_sqrt2 ());
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail647:;
}
return NULL_TREE;
}
static tree
generic_simplify_361 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail648;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2047, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail648:;
}
return NULL_TREE;
}
static tree
generic_simplify_362 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 6809 "/home/seti/riscv-gnu-toolchain/gcc/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 6813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree res = int_const_binop (rop, captures[3], captures[2]);
/* #line 6814 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_OVERFLOW (res)
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail649;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail649;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail649;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6816, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail649:;
}
else
{
/* #line 6817 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail650;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail650;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail650;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6818, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = TREE_OVERFLOW (res)
? drop_tree_overflow (res) : res;
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail650:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_363 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (floor_divmod), const enum tree_code ARG_UNUSED (trunc_divmod))
{
/* #line 446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
&& TYPE_UNSIGNED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail651;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 448, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, trunc_divmod, type, res_op0, res_op1);
return _r;
}
next_after_fail651:;
}
return NULL_TREE;
}
static tree
generic_simplify_364 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
{
/* #line 1154 "/home/seti/riscv-gnu-toolchain/gcc/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 1159 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (utype
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail652;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail652;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail652;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail652;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail652;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1160, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
{
tree _o3[1], _r3;
_o3[0] = pmop[0];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[4];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail652:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_365 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 7733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail653;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7734, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[2])) goto next_after_fail653;
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[3], _r2;
_o2[0] = unshare_expr (captures[2]);
_o2[1] = captures[2];
_o2[2] = captures[4];
_r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
_o1[0] = _r2;
}
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[5];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail653:;
}
return NULL_TREE;
}
static tree
generic_simplify_366 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3])
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
)
{
{
/* #line 6827 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree res = int_const_binop (rop, captures[3], captures[2]);
/* #line 6828 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_OVERFLOW (res)
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail654;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail654;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail654;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6829, __FILE__, __LINE__);
{
tree _r;
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); _r =
constant_boolean_node (less == ovf_high, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail654:;
}
else
{
/* #line 6840 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
{
/* #line 6841 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail655;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail655;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail655;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6848, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = res;
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail655:;
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_367 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_INT_CST_LOW (captures[1]) & 1
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail656;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2111, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail656:;
}
return NULL_TREE;
}
static tree
generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
/* #line 1889 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail657;
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_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail657:;
}
else
{
/* #line 1891 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail658;
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[2];
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail658:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_369 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail659;
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;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = unshare_expr (captures[2]);
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail659:;
return NULL_TREE;
}
static tree
generic_simplify_370 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const combined_fn ARG_UNUSED (bswap))
{
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree ctype = TREE_TYPE (captures[0]);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail660;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3975, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != ctype)
_r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != ctype)
_r1 = fold_build1_loc (loc, NOP_EXPR, ctype, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail660:;
}
return NULL_TREE;
}
static tree
generic_simplify_371 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), 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 6138 "/home/seti/riscv-gnu-toolchain/gcc/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 6145 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SCALAR_FLOAT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail661;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6146, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail661;
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = unshare_expr (captures[1]);
_r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_o1[1] = t_cst;
_r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = unshare_expr (captures[1]);
{
tree _o2[1], _r2;
{
tree _o3[2], _r3;
{
tree _o4[2], _r4;
_o4[0] = unshare_expr (captures[1]);
_o4[1] = unshare_expr (captures[1]);
_r4 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]);
_o3[0] = _r4;
}
_o3[1] = t_one;
_r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_r2 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o2[0]), 1, _o2[0]);
if (!_r2)
goto next_after_fail661;
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree res_op2;
{
tree _o1[2], _r1;
_o1[0] = t_one;
_o1[1] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
if (!_r1)
goto next_after_fail661;
res_op2 = _r1;
}
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail661:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_372 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
&& (cmp != LTGT_EXPR || ! flag_trapping_math)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail662;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5742, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR
? false : true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail662:;
}
return NULL_TREE;
}
static tree
generic_simplify_373 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail663;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail663;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5423, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail663:;
return NULL_TREE;
}
static tree
generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail664;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5429, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail664:;
return NULL_TREE;
}
static tree
generic_simplify_375 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail665;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1017, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = unshare_expr (captures[2]);
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail665:;
return NULL_TREE;
}
static tree
generic_simplify_376 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail666;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3105, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail666:;
return NULL_TREE;
}
static tree
generic_simplify_377 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail667;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 630, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail667:;
}
return NULL_TREE;
}
static tree
generic_simplify_378 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail668;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1023, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail668:;
return NULL_TREE;
}
static tree
generic_simplify_379 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 5557 "/home/seti/riscv-gnu-toolchain/gcc/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 5561 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = signed_type_for (TREE_TYPE (captures[1]));
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail669;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail669;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5562, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != stype)
_r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (stype);
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail669:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_380 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 3113 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (type) != COMPLEX_TYPE
&& (! ANY_INTEGRAL_TYPE_P (type)
|| TYPE_OVERFLOW_UNDEFINED (type))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail670;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3116, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail670:;
}
return NULL_TREE;
}
static tree
generic_simplify_381 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (SQRT_ALL))
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 5931 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_signaling_nan_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail671;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5932, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail671:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_382 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (sinhs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts))
{
/* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!flag_errno_math
)
{
{
/* #line 6177 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree t_one = build_one_cst (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail672;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6178, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail672;
tree res_op0;
res_op0 = unshare_expr (captures[1]);
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = t_one;
_o3[1] = unshare_expr (captures[1]);
_r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
{
tree _o3[2], _r3;
_o3[0] = t_one;
_o3[1] = captures[1];
_r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail672;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail672:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_383 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2031 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail673;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2033, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail673:;
}
return NULL_TREE;
}
static tree
generic_simplify_384 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail674;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1032, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail674:;
return NULL_TREE;
}
static tree
generic_simplify_385 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (rotate), const enum tree_code ARG_UNUSED (invrot), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3624 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[2]) || integer_all_onesp (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail675;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3625, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail675:;
}
return NULL_TREE;
}
static tree
generic_simplify_386 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), 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 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2632 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
)
{
/* #line 2635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!CONSTANT_CLASS_P (captures[0])
)
{
/* #line 2636 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (outer_op == PLUS_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail676;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2637, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail676:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail677;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2638, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail677:;
}
}
}
else
{
/* #line 2639 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
|| TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
)
{
/* #line 2641 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (outer_op == PLUS_EXPR
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail678;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2642, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
_r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
_o2[0] = _r3;
}
_o2[1] = captures[1];
_r2 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail678:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail679;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2643, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
_r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
_o2[0] = _r3;
}
_o2[1] = captures[1];
_r2 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail679:;
}
}
else
{
/* #line 2647 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (type, captures[0])
)
{
{
/* #line 2648 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree cst = const_binop (outer_op == inner_op
? PLUS_EXPR : MINUS_EXPR,
type, captures[1], captures[2]);
/* #line 2651 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cst && !TREE_OVERFLOW (cst)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail680;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail680;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail680;
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[0];
tree res_op1;
res_op1 = cst;
tree _r;
_r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
return _r;
}
next_after_fail680:;
}
else
{
/* #line 2654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type) && cst
&& wi::to_wide (cst) == wi::min_value (type)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail681;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail681;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail681;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2656, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (type, wi::to_wide (cst));
tree _r;
_r = fold_build2_loc (loc, neg_inner_op, type, res_op0, res_op1);
return _r;
}
next_after_fail681:;
}
else
{
{
/* #line 2658 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
/* #line 2659 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (utype
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail682;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail682;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail682;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2660, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = drop_tree_overflow (cst);
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail682:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_387 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 693 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail683;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail683;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 694, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = unshare_expr (captures[1]);
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[4];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail683:;
}
return NULL_TREE;
}
static tree
generic_simplify_388 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail684;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1042, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail684:;
return NULL_TREE;
}
static tree
generic_simplify_389 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail685;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5457, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail685:;
}
return NULL_TREE;
}
static tree
generic_simplify_390 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (minmax))
{
/* #line 3194 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail686;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3198, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
return _r;
}
next_after_fail686:;
}
return NULL_TREE;
}
static tree
generic_simplify_391 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail687;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1047, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail687:;
return NULL_TREE;
}
static tree
generic_simplify_392 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail688;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4787, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail688:;
return NULL_TREE;
}
static tree
generic_simplify_393 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail689;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail689;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5249, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail689:;
return NULL_TREE;
}
static tree
generic_simplify_394 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail690;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1052, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail690:;
return NULL_TREE;
}
static tree
generic_simplify_395 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), 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 6157 "/home/seti/riscv-gnu-toolchain/gcc/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 6165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SCALAR_FLOAT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail691;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6166, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail691;
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = unshare_expr (captures[1]);
_r2 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_o1[1] = t_cst;
_r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = t_one;
{
tree _o2[1], _r2;
{
tree _o3[2], _r3;
{
tree _o4[2], _r4;
_o4[0] = unshare_expr (captures[1]);
_o4[1] = unshare_expr (captures[1]);
_r4 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]);
_o3[0] = _r4;
}
_o3[1] = t_one;
_r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_r2 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o2[0]), 1, _o2[0]);
if (!_r2)
goto next_after_fail691;
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree res_op2;
{
tree _o1[2], _r1;
_o1[0] = t_zero;
_o1[1] = captures[1];
_r1 = maybe_build_call_expr_loc (loc, copysigns, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
if (!_r1)
goto next_after_fail691;
res_op2 = _r1;
}
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail691:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_396 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail692;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1057, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail692:;
return NULL_TREE;
}
static tree
generic_simplify_397 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& types_match (captures[0], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail693;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail693;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5491, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
return _r;
}
next_after_fail693:;
}
return NULL_TREE;
}
static tree
generic_simplify_398 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail694;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1361, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail694:;
return NULL_TREE;
}
static tree
generic_simplify_399 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail695;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail695;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2341, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail695:;
return NULL_TREE;
}
static tree
generic_simplify_400 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2781 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_TRAPS (type)
&& TREE_CODE (type) != COMPLEX_TYPE
&& tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail696;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail696;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2784, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail696:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_401 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const combined_fn ARG_UNUSED (reduc))
{
{
/* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int i = single_nonzero_element (captures[1]);
/* #line 7544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (i >= 0
)
{
{
/* #line 7545 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail697;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail697;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7550, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[3], _r2;
_o2[0] = captures[0];
_o2[1] = size;
_o2[2] = pos;
_r2 = fold_build3_loc (loc, BIT_FIELD_REF, elt_type, _o2[0], _o2[1], _o2[2]);
_o1[0] = _r2;
}
_o1[1] = elt;
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, elt_type, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail697:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_402 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (TAN))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail698;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6268, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = maybe_build_call_expr_loc (loc, TAN, type, 1, res_op0);
if (!_r)
goto next_after_fail698;
return _r;
}
next_after_fail698:;
}
return NULL_TREE;
}
static tree
generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail699;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1073, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail699:;
return NULL_TREE;
}
static tree
generic_simplify_404 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
)
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail700;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7060, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail700;
return _r;
}
next_after_fail700:;
}
return NULL_TREE;
}
static tree
generic_simplify_405 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail701;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5467, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[2]));
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail701:;
return NULL_TREE;
}
static tree
generic_simplify_406 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail702;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1078, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail702:;
return NULL_TREE;
}
static tree
generic_simplify_407 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail703;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail703;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1083, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[5];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail703:;
return NULL_TREE;
}
static tree
generic_simplify_408 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TREE_CODE (TREE_TYPE (captures[2])) != BOOLEAN_TYPE
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
&& (TYPE_PRECISION (TREE_TYPE (captures[2])) >= TYPE_PRECISION (type)
|| !TYPE_UNSIGNED (TREE_TYPE (captures[2])))
&& (
0
|| !TREE_SIDE_EFFECTS (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail704;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3297, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[4];
_o1[1] = captures[5];
_r1 = fold_build2_loc (loc, cmp, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[0];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail704:;
}
return NULL_TREE;
}
static tree
generic_simplify_409 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail705;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail705;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1088, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail705:;
return NULL_TREE;
}
static tree
generic_simplify_410 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail706;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail706;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1083, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[5];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail706:;
return NULL_TREE;
}
static tree
generic_simplify_411 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail707;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail707;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 336, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail707:;
}
return NULL_TREE;
}
static tree
generic_simplify_412 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS))
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
/* #line 6288 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_NANS (captures[1])
&& ! HONOR_INFINITIES (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail708;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6290, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = maybe_build_call_expr_loc (loc, COS, type, 1, res_op0);
if (!_r)
goto next_after_fail708;
return _r;
}
next_after_fail708:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_413 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail709;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail709;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1088, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail709:;
return NULL_TREE;
}
static tree
generic_simplify_414 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 3338 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail710;
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;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = build_minus_one_cst (type);
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail710:;
}
return NULL_TREE;
}
static tree
generic_simplify_415 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 5839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail711;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail711;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5841, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail711:;
}
return NULL_TREE;
}
static tree
generic_simplify_416 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
&& tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
)
{
/* #line 1503 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[4]) && single_use (captures[5])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail712;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail712;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1504, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[6];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail712:;
}
else
{
/* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0]) && single_use (captures[1])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail713;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail713;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1506, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail713:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_417 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *captures
, const combined_fn ARG_UNUSED (cond_op))
{
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree op_type = TREE_TYPE (captures[5]);
/* #line 7449 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse_conditions_p (captures[0], captures[2])
&& element_precision (type) == element_precision (op_type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail714;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7451, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[4], _r1;
_o1[0] = captures[2];
_o1[1] = captures[3];
_o1[2] = captures[4];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
_o1[3] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
if (!_r1)
goto next_after_fail714;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[5]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
return _r;
}
next_after_fail714:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_418 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail715;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail715;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5499, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
return _r;
}
next_after_fail715:;
return NULL_TREE;
}
static tree
generic_simplify_419 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/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 3850 "/home/seti/riscv-gnu-toolchain/gcc/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 3856 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail716;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail716;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail716;
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 = wide_int_to_tree (type, mul);
tree _r;
_r = fold_build2_loc (loc, op, type, res_op0, res_op1);
return _r;
}
next_after_fail716:;
}
else
{
{
/* #line 3859 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail717;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail717;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail717;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3860, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[1] = _r3;
}
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail717:;
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_420 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (cmp2))
{
/* #line 5218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
&& TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
&& wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
)
{
{
/* #line 5221 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = TREE_TYPE (captures[2]);
wide_int denom = wi::to_wide (captures[1]);
wide_int right = wi::to_wide (captures[2]);
wide_int smax = wi::sdiv_trunc (wi::max_value (TREE_TYPE (captures[0])), denom);
wide_int smin = wi::sdiv_trunc (wi::min_value (TREE_TYPE (captures[0])), denom);
bool small = wi::leu_p (right, smax);
bool large = wi::geu_p (right, smin);
/* #line 5231 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (small || large
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail718;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail718;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail718;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5232, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != utype)
_r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
_r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail718:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail719;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail719;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail719;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5233, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[0]));
tree _r;
_r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
return _r;
}
next_after_fail719:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_421 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail720;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4772, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail720:;
return NULL_TREE;
}
static tree
generic_simplify_422 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1172 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail721;
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 _r;
_r = constant_boolean_node (cmp == GT_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail721:;
}
return NULL_TREE;
}
static tree
generic_simplify_423 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
{
/* #line 3466 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int cand = wi::ctz (wi::to_wide (captures[2])) - wi::ctz (wi::to_wide (captures[0]));
/* #line 3467 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail722;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail722;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail722;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3470, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail722:;
}
else
{
/* #line 3471 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail723;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail723;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail723;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3473, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_int_cst (TREE_TYPE (captures[1]), cand);
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
return _r;
}
next_after_fail723:;
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_424 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail724;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3244, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, out, type, res_op0, res_op1);
return _r;
}
next_after_fail724:;
}
return NULL_TREE;
}
static tree
generic_simplify_425 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/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 3487 "/home/seti/riscv-gnu-toolchain/gcc/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 3541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((mask & zerobits) == mask
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail725;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail725;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail725;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail725;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail725;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3542, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst (type, 0);
return _r;
}
next_after_fail725:;
}
else
{
{
/* #line 3543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
newmask = mask | zerobits;
/* #line 3544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (newmask != mask && (newmask & (newmask + 1)) == 0
)
{
{
/* #line 3545 "/home/seti/riscv-gnu-toolchain/gcc/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 3554 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (prec < HOST_BITS_PER_WIDE_INT
|| newmask == HOST_WIDE_INT_M1U
)
{
{
/* #line 3556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 3558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_int_cst_equal (newmaskt, captures[5])
)
{
/* #line 3559 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (shift_type != TREE_TYPE (captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail726;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail726;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail726;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3560, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[2];
if (TREE_TYPE (_o3[0]) != shift_type)
_r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail726:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail727;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail727;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail727;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3561, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = newmaskt;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail727:;
}
}
}
}
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3259 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail728;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3261, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == NE_EXPR, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail728:;
}
else
{
/* #line 3262 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail729;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3264, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail729:;
}
}
return NULL_TREE;
}
static tree
generic_simplify_427 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (cmp2), const enum tree_code ARG_UNUSED (cmp3), const enum tree_code ARG_UNUSED (bit_op), const combined_fn ARG_UNUSED (ffs))
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
/* #line 7339 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail730;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7340, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = build_zero_cst (TREE_TYPE (captures[1]));
tree _r;
_r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail730:;
}
else
{
/* #line 7341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) < 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail731;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7342, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == GT_EXPR ? true : false, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail731:;
}
else
{
/* #line 7343 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_widest (captures[2]) >= prec
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail732;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7344, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (cmp == GT_EXPR ? false : true, type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail732:;
}
else
{
/* #line 7345 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::to_widest (captures[2]) == prec - 1
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail733;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7346, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = wide_int_to_tree (TREE_TYPE (captures[1]),
wi::shifted_mask (prec - 1, 1,
false, prec));
tree _r;
_r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail733:;
}
else
{
/* #line 7349 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail734;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail734;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7350, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail734;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = unshare_expr (captures[1]);
_o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
_r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = wide_int_to_tree (TREE_TYPE (captures[1]),
wi::mask (tree_to_uhwi (captures[2]),
false, prec));
_r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
_r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
return _r;
}
next_after_fail734:;
}
}
}
}
}
}
return NULL_TREE;
}
static tree
generic_simplify_428 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail735;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1850, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[0];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail735:;
}
return NULL_TREE;
}
static tree
generic_simplify_429 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree *captures
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& TREE_CODE (captures[3]) != INTEGER_CST
&& tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
&& types_match (type, captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail736;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1702, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[3];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
return _r;
}
next_after_fail736:;
}
return NULL_TREE;
}
static tree
generic_simplify_430 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (cmp))
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail737;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4776, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = unshare_expr (captures[0]);
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail737:;
return NULL_TREE;
}
static tree
generic_simplify_431 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail738;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6238, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail738:;
return NULL_TREE;
}
static tree
generic_simplify_432 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *captures
, const enum tree_code ARG_UNUSED (op))
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail739;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail739;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1491, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail739:;
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 _p0)
{
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
/* #line 160 "/home/seti/riscv-gnu-toolchain/gcc/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 163 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail740;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 164, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail740:;
}
}
}
break;
}
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 1518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail741;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail741;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1518, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail741:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 1528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail742;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1528, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail742:;
}
break;
}
default:;
}
if (tree_expr_nonnegative_p (_p0))
{
{
/* #line 1537 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail743;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1537, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail743:;
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1073 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
tree res = generic_simplify_403 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 1073 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
tree res = generic_simplify_403 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1078 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
tree res = generic_simplify_406 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 1078 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
tree res = generic_simplify_406 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1231 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail744;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1231, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail744:;
}
break;
}
default:;
}
{
/* #line 1239 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail745;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1239, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail745:;
}
if (integer_each_onep (_q21))
{
{
/* #line 1815 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_134 (loc, type, _p0, captures);
if (res) return res;
}
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_25 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 1234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_25 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case INTEGER_CST:
{
{
/* #line 1242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
/* #line 1242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((INTEGRAL_TYPE_P (type)
&& TYPE_UNSIGNED (type))
|| (!TYPE_OVERFLOW_SANITIZED (type)
&& may_negate_without_overflow_p (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail746;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail746;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1246, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = const_unop (NEGATE_EXPR, type, captures[2]);
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail746:;
}
}
break;
}
default:;
}
if (integer_all_onesp (_q21))
{
{
/* #line 1820 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_276 (loc, type, _p0, captures);
if (res) return res;
}
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 1790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail747;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1790, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail747:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_29 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_each_onep (_q31))
{
{
/* #line 1815 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_134 (loc, type, _p0, captures);
if (res) return res;
}
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_all_onesp (_q31))
{
{
/* #line 1820 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_276 (loc, type, _p0, captures);
if (res) return res;
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 1827 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_32 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
tree res = generic_simplify_135 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
{
/* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
tree res = generic_simplify_135 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
tree res = generic_simplify_274 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_274 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case LROTATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
tree res = generic_simplify_185 (loc, type, _p0, captures, LROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_185 (loc, type, _p0, captures, LROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case RROTATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
tree res = generic_simplify_185 (loc, type, _p0, captures, RROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_185 (loc, type, _p0, captures, RROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 1795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_29 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 1827 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_32 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_135 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_135 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
tree res = generic_simplify_231 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
tree res = generic_simplify_231 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case LROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
tree res = generic_simplify_82 (loc, type, _p0, captures, LROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
tree res = generic_simplify_82 (loc, type, _p0, captures, LROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case RROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
tree res = generic_simplify_82 (loc, type, _p0, captures, RROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
tree res = generic_simplify_82 (loc, type, _p0, captures, RROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
if (res) return res;
}
break;
}
case UNORDERED_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
if (res) return res;
}
break;
}
case ORDERED_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
if (res) return res;
}
break;
}
case UNLT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
case UNLE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
case UNGT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
case UNGE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
case UNEQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
if (res) return res;
}
break;
}
case LTGT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_123 (loc, type, _p0, 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 _p0)
{
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case ABSU_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1522 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
/* #line 1522 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail748;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail748;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1523, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail748:;
}
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 1532 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail749;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1532, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
return _r;
}
next_after_fail749:;
}
break;
}
default:;
}
if (tree_expr_nonnegative_p (_p0))
{
{
/* #line 1541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail750;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1541, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail750:;
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (tree_negate_expr_p (_q21))
{
{
/* #line 1596 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_245 (loc, type, _p0, captures);
if (res) return res;
}
}
if (tree_negate_expr_p (_q20))
{
{
/* #line 1596 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_245 (loc, type, _p0, captures);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 1603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 1603 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail751;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1607, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail751:;
}
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 1610 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 1610 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail752;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1611, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[0];
tree _r;
_r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail752:;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (tree_negate_expr_p (_q21))
{
{
/* #line 1622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_93 (loc, type, _p0, captures);
if (res) return res;
}
}
if (tree_negate_expr_p (_q20))
{
{
/* #line 1622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_93 (loc, type, _p0, captures);
if (res) return res;
}
}
break;
}
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (tree_negate_expr_p (_q21))
{
{
/* #line 1629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
/* #line 1629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
&& single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail753;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1631, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail753:;
}
}
}
if (tree_negate_expr_p (_q20))
{
{
/* #line 1635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
/* #line 1635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
&& single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail754;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1637, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail754:;
}
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case RSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 1642 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_195 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2551 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail755;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2557, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail755:;
}
}
}
break;
}
default:;
}
{
tree _q20_pops[1];
if (tree_logical_inverted_value (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
{
/* #line 4580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
/* #line 4580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TREE_CODE (type) != BOOLEAN_TYPE
&& TYPE_PRECISION (type) > 1
&& TREE_CODE (captures[2]) == SSA_NAME
&& ssa_name_has_boolean_range (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail756;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4585, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_all_ones_cst (type);
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail756:;
}
}
}
}
if (tree_negate_expr_p (_q20))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2560 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail757;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2565, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail757:;
}
}
}
}
break;
}
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 1642 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_195 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 1802 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_244 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_240 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_FMAF:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
tree res = generic_simplify_262 (loc, type, _p0, captures, CFN_BUILT_IN_FMAF);
if (res) return res;
}
}
break;
case CFN_BUILT_IN_FMA:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
tree res = generic_simplify_262 (loc, type, _p0, captures, CFN_BUILT_IN_FMA);
if (res) return res;
}
}
break;
case CFN_BUILT_IN_FMAL:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
tree res = generic_simplify_262 (loc, type, _p0, captures, CFN_BUILT_IN_FMAL);
if (res) return res;
}
}
break;
case CFN_FMA:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
tree res = generic_simplify_262 (loc, type, _p0, captures, CFN_FMA);
if (res) return res;
}
}
break;
case CFN_FMS:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
/* #line 7035 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail758;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7036, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail758;
return _r;
}
next_after_fail758:;
}
}
}
}
break;
case CFN_FNMA:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
/* #line 7049 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail759;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7050, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail759;
return _r;
}
next_after_fail759:;
}
}
}
}
break;
case CFN_FNMS:
if (call_expr_nargs (_p0) == 3)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
tree _q22 = CALL_EXPR_ARG (_p0, 2);
{
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
/* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (canonicalize_math_after_vectorization_p ()
)
{
/* #line 7063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail760;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7064, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
if (!_r)
goto next_after_fail760;
return _r;
}
next_after_fail760:;
}
}
}
}
break;
default:;
}
break;
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1802 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_244 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_240 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
default:;
}
}
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
{
/* #line 4580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
/* #line 4580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TREE_CODE (type) != BOOLEAN_TYPE
&& TYPE_PRECISION (type) > 1
&& TREE_CODE (captures[2]) == SSA_NAME
&& ssa_name_has_boolean_range (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail761;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4585, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = build_all_ones_cst (type);
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail761:;
}
}
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
{
tree _q21_pops[1];
if (tree_nop_convert (_q21, _q21_pops))
{
tree _q40 = _q21_pops[0];
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
{
tree _q21_pops[1];
if (tree_nop_convert (_q21, _q21_pops))
{
tree _q40 = _q21_pops[0];
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
{
tree _q21_pops[1];
if (tree_nop_convert (_q21, _q21_pops))
{
tree _q40 = _q21_pops[0];
{
/* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 2271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 2271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (POINTER_TYPE_P (type)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail762;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail762;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail762;
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 _r;
_r = build_fold_addr_expr_with_type
(build2 (MEM_REF, char_type_node, captures[0],
wide_int_to_tree (ptr_type_node, wi::neg (wi::to_wide (captures[1])))),
type);
return _r;
}
next_after_fail762:;
}
}
break;
}
default:;
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 3194 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
tree res = generic_simplify_390 (loc, type, _p0, captures, MIN_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 3194 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
tree res = generic_simplify_390 (loc, type, _p0, captures, MAX_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 3632 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
/* #line 3632 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
&& TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (type)
&& !integer_zerop (captures[3])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail763;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3637, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail763:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((
0
&& useless_type_conversion_p (type, TREE_TYPE (captures[0])))
|| (
1
&& type == TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail764;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3647, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail764:;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/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 3733 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail765;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3739, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail765:;
}
else
{
/* #line 3746 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail766;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3750, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail766:;
}
else
{
/* #line 3756 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail767;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3760, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail767:;
}
else
{
/* #line 3773 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail768;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3783, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail768:;
}
else
{
/* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& final_int && inter_int && inside_int
&& final_prec == inside_prec
&& final_prec > inter_prec
&& inter_unsignedp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail769;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3792, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree
(inside_type,
wi::mask (inter_prec, false,
TYPE_PRECISION (inside_type)));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail769:;
}
else
{
/* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail770;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3804, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail770:;
}
}
}
}
}
}
}
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/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 3733 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail771;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3739, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail771:;
}
else
{
/* #line 3746 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail772;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3750, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail772:;
}
else
{
/* #line 3756 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail773;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3760, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail773:;
}
else
{
/* #line 3773 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail774;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3783, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail774:;
}
else
{
/* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& final_int && inter_int && inside_int
&& final_prec == inside_prec
&& final_prec > inter_prec
&& inter_unsignedp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail775;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3792, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree
(inside_type,
wi::mask (inter_prec, false,
TYPE_PRECISION (inside_type)));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail775:;
}
else
{
/* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail776;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3804, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail776:;
}
}
}
}
}
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 3824 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 3824 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail777;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3829, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail777:;
}
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
tree res = generic_simplify_289 (loc, type, _p0, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
tree res = generic_simplify_39 (loc, type, _p0, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
tree res = generic_simplify_109 (loc, type, _p0, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
tree res = generic_simplify_168 (loc, type, _p0, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
tree res = generic_simplify_289 (loc, type, _p0, captures, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
tree res = generic_simplify_39 (loc, type, _p0, captures, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
tree res = generic_simplify_109 (loc, type, _p0, captures, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
tree res = generic_simplify_168 (loc, type, _p0, captures, MINUS_EXPR);
if (res) return res;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
tree res = generic_simplify_289 (loc, type, _p0, captures, MULT_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
tree res = generic_simplify_39 (loc, type, _p0, captures, MULT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
tree res = generic_simplify_109 (loc, type, _p0, captures, MULT_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
tree res = generic_simplify_168 (loc, type, _p0, captures, MULT_EXPR);
if (res) return res;
}
break;
}
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
tree res = generic_simplify_289 (loc, type, _p0, captures, RDIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
tree res = generic_simplify_39 (loc, type, _p0, captures, RDIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
tree res = generic_simplify_109 (loc, type, _p0, captures, RDIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
tree res = generic_simplify_168 (loc, type, _p0, captures, RDIV_EXPR);
if (res) return res;
}
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 _p0)
{
{
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((
0
&& useless_type_conversion_p (type, TREE_TYPE (captures[0])))
|| (
1
&& type == TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail778;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3647, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail778:;
}
}
switch (TREE_CODE (_p0))
{
case VIEW_CONVERT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3652 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail779;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3652, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail779:;
}
break;
}
default:;
}
{
/* #line 3658 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 3658 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail780;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3661, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail780:;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3667 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
/* #line 3667 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail781;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3673, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail781:;
}
}
break;
}
case CONSTRUCTOR:
{
{
/* #line 3678 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
{
/* #line 3678 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
/* #line 3682 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (CONSTRUCTOR_NELTS (ctor) == 0
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail782;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail782;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3683, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
return _r;
}
next_after_fail782:;
}
else
{
/* #line 3684 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (CONSTRUCTOR_NELTS (ctor) == 1
&& VECTOR_TYPE_P (TREE_TYPE (ctor))
&& operand_equal_p (TYPE_SIZE (type),
TYPE_SIZE (TREE_TYPE
(CONSTRUCTOR_ELT (ctor, 0)->value)))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail783;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail783;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3689, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = CONSTRUCTOR_ELT (ctor, 0)->value;
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail783:;
}
}
}
}
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 _p0)
{
{
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((
0
&& useless_type_conversion_p (type, TREE_TYPE (captures[0])))
|| (
1
&& type == TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail784;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3647, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail784:;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/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 3733 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail785;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3739, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail785:;
}
else
{
/* #line 3746 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail786;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3750, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail786:;
}
else
{
/* #line 3756 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail787;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3760, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail787:;
}
else
{
/* #line 3773 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail788;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3783, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail788:;
}
else
{
/* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& final_int && inter_int && inside_int
&& final_prec == inside_prec
&& final_prec > inter_prec
&& inter_unsignedp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail789;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3792, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree
(inside_type,
wi::mask (inter_prec, false,
TYPE_PRECISION (inside_type)));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail789:;
}
else
{
/* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail790;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3804, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail790:;
}
}
}
}
}
}
}
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/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 3733 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail791;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3739, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail791:;
}
else
{
/* #line 3746 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail792;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3750, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail792:;
}
else
{
/* #line 3756 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail793;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3760, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail793:;
}
else
{
/* #line 3773 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail794;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3783, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
return _r;
}
next_after_fail794:;
}
else
{
/* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& final_int && inter_int && inside_int
&& final_prec == inside_prec
&& final_prec > inter_prec
&& inter_unsignedp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail795;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3792, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree
(inside_type,
wi::mask (inter_prec, false,
TYPE_PRECISION (inside_type)));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail795:;
}
else
{
/* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail796;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3804, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail796:;
}
}
}
}
}
}
}
}
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 _p0)
{
{
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 3645 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((
0
&& useless_type_conversion_p (type, TREE_TYPE (captures[0])))
|| (
1
&& type == TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail797;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3647, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail797:;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/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 3733 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail798;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3739, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail798:;
}
else
{
/* #line 3746 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail799;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3750, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail799:;
}
else
{
/* #line 3756 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail800;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3760, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail800:;
}
else
{
/* #line 3773 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail801;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3783, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail801:;
}
else
{
/* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& final_int && inter_int && inside_int
&& final_prec == inside_prec
&& final_prec > inter_prec
&& inter_unsignedp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail802;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3792, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree
(inside_type,
wi::mask (inter_prec, false,
TYPE_PRECISION (inside_type)));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail802:;
}
else
{
/* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail803;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3804, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail803:;
}
}
}
}
}
}
}
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
{
/* #line 3705 "/home/seti/riscv-gnu-toolchain/gcc/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 3733 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail804;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3739, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail804:;
}
else
{
/* #line 3746 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail805;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3750, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail805:;
}
else
{
/* #line 3756 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail806;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3760, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail806:;
}
else
{
/* #line 3773 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail807;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3783, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
return _r;
}
next_after_fail807:;
}
else
{
/* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (0
&& final_int && inter_int && inside_int
&& final_prec == inside_prec
&& final_prec > inter_prec
&& inter_unsignedp
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail808;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3792, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = wide_int_to_tree
(inside_type,
wi::mask (inter_prec, false,
TYPE_PRECISION (inside_type)));
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail808:;
}
else
{
/* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail809;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3804, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail809:;
}
}
}
}
}
}
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
case PAREN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail810;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail810;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3698, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail810:;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p0))
{
{
/* #line 3695 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail811;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3695, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail811:;
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
case COMPLEX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3922 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail812;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3922, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail812:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CONJ_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 3930 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail813;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3930, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail813:;
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
const enum tree_code op = PLUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail814;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail814:;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
const enum tree_code op = MINUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail815;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail815:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_BUILT_IN_CEXPIF:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
{
/* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail816;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3941, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail816;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail816:;
}
}
break;
case CFN_BUILT_IN_CEXPI:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
{
/* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail817;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3941, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail817;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail817:;
}
}
break;
case CFN_BUILT_IN_CEXPIL:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
{
/* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail818;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3941, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail818;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail818:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CONJ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3930 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail819;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3930, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail819:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
const enum tree_code op = PLUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail820;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail820:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
const enum tree_code op = MINUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail821;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail821:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CEXPIF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
{
/* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail822;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3941, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail822;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail822:;
}
}
break;
case CFN_BUILT_IN_CEXPI:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
{
/* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail823;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3941, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail823;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail823:;
}
}
break;
case CFN_BUILT_IN_CEXPIL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
{
/* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail824;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3941, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail824;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail824:;
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
case COMPLEX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3925 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail825;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3925, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail825:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CONJ_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 3933 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail826;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3933, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail826:;
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
const enum tree_code op = PLUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail827;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail827:;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
const enum tree_code op = MINUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail828;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail828:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_BUILT_IN_CEXPIF:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
{
/* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail829;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3944, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail829;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail829:;
}
}
break;
case CFN_BUILT_IN_CEXPI:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
{
/* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail830;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3944, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail830;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail830:;
}
}
break;
case CFN_BUILT_IN_CEXPIL:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
{
/* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail831;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3944, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail831;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail831:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CONJ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3933 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail832;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3933, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail832:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
const enum tree_code op = PLUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail833;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail833:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
const enum tree_code op = MINUS_EXPR;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail834;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3938, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[3];
_r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail834:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CEXPIF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
{
/* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail835;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3944, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail835;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail835:;
}
}
break;
case CFN_BUILT_IN_CEXPI:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
{
/* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail836;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3944, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail836;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail836:;
}
}
break;
case CFN_BUILT_IN_CEXPIL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
{
/* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail837;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3944, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail837;
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail837:;
}
}
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 _p0)
{
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CONJ_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 3949 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_122 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case COMPLEX_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 3955 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
{
/* #line 3955 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree itype = TREE_TYPE (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail838;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3956, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != itype)
_r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != itype)
_r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail838:;
}
}
break;
}
default:;
}
break;
}
case CONJ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 3949 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_122 (loc, type, _p0, captures);
if (res) return res;
}
break;
}
case COMPLEX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 3955 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
{
/* #line 3955 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree itype = TREE_TYPE (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail839;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3956, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != itype)
_r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[3];
if (TREE_TYPE (_o2[0]) != itype)
_r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, COMPLEX_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail839:;
}
}
break;
}
default:;
}
return NULL_TREE;
}
tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0)
{
switch (code)
{
case ABS_EXPR:
return generic_simplify_ABS_EXPR (loc, code, type, _p0);
case BIT_NOT_EXPR:
return generic_simplify_BIT_NOT_EXPR (loc, code, type, _p0);
case ABSU_EXPR:
return generic_simplify_ABSU_EXPR (loc, code, type, _p0);
case NEGATE_EXPR:
return generic_simplify_NEGATE_EXPR (loc, code, type, _p0);
CASE_CONVERT:
return generic_simplify_CONVERT_EXPR (loc, code, type, _p0);
case VIEW_CONVERT_EXPR:
return generic_simplify_VIEW_CONVERT_EXPR (loc, code, type, _p0);
case FLOAT_EXPR:
return generic_simplify_FLOAT_EXPR (loc, code, type, _p0);
case FIX_TRUNC_EXPR:
return generic_simplify_FIX_TRUNC_EXPR (loc, code, type, _p0);
case PAREN_EXPR:
return generic_simplify_PAREN_EXPR (loc, code, type, _p0);
case REALPART_EXPR:
return generic_simplify_REALPART_EXPR (loc, code, type, _p0);
case IMAGPART_EXPR:
return generic_simplify_IMAGPART_EXPR (loc, code, type, _p0);
case CONJ_EXPR:
return generic_simplify_CONJ_EXPR (loc, code, type, _p0);
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail840;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail840;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 182, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail840:;
}
}
if (real_zerop (_p1))
{
{
/* #line 198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_355 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, PLUS_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q61, _q21 };
tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_onep (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1279 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_41 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (real_zerop (_p0))
{
{
/* #line 198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
tree res = generic_simplify_355 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
if (integer_onep (_q31))
{
{
/* #line 1279 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_41 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1342 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_154 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_q60))
{
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
switch (TREE_CODE (_q70))
{
CASE_CONVERT:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
case LT_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case EQ_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case NE_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case EQ_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case NE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case LT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case MINUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1342 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_154 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q21))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q21, 0);
tree _q61 = TREE_OPERAND (_q21, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
tree _q21_pops[1];
if (tree_nop_convert (_q21, _q21_pops))
{
tree _q70 = _q21_pops[0];
switch (TREE_CODE (_q70))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
{
if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
{
tree _q21_pops[1];
if (tree_nop_convert (_q21, _q21_pops))
{
tree _q40 = _q21_pops[0];
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_AND_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q71))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 };
tree res = generic_simplify_11 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q31))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q31, 0);
tree _q71 = TREE_OPERAND (_q31, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
switch (TREE_CODE (_q40))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
{
tree _q31_pops[1];
if (tree_nop_convert (_q31, _q31_pops))
{
tree _q80 = _q31_pops[0];
switch (TREE_CODE (_q80))
{
case BIT_IOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
{
if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
{
if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
{
if (integer_all_onesp (_p1))
{
{
/* #line 1398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
tree res = generic_simplify_324 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_11 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_11 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
tree res = generic_simplify_11 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
tree _q31_pops[1];
if (tree_nop_convert (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if (CONSTANT_CLASS_P (_q31))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
if (res) return res;
}
}
}
if (CONSTANT_CLASS_P (_q30))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_190 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (CONSTANT_CLASS_P (_q31))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q31_pops[1];
if (tree_nop_convert (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
tree _q41_pops[1];
if (tree_nop_convert (_q41, _q41_pops))
{
tree _q60 = _q41_pops[0];
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q50, _q20 };
tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_235 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
tree res = generic_simplify_235 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR);
if (res) return res;
}
}
}
if (CONSTANT_CLASS_P (_q20))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_190 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_8 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q51, _q20 };
tree res = generic_simplify_8 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if (integer_each_onep (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_104 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
if (integer_each_onep (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_104 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case NEGATE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
CASE_CONVERT:
{
tree _q90 = TREE_OPERAND (_q80, 0);
switch (TREE_CODE (_q90))
{
case LT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case TRUNC_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
{
switch (TREE_CODE (_p1))
{
case TRUNC_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
case CEIL_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
{
switch (TREE_CODE (_p1))
{
case CEIL_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
case FLOOR_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
{
switch (TREE_CODE (_p1))
{
case FLOOR_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
case ROUND_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
{
switch (TREE_CODE (_p1))
{
case ROUND_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case TRUNC_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
switch (TREE_CODE (_p1))
{
case TRUNC_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
case CEIL_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
switch (TREE_CODE (_p1))
{
case CEIL_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
case FLOOR_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
switch (TREE_CODE (_p1))
{
case FLOOR_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
case ROUND_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
switch (TREE_CODE (_p1))
{
case ROUND_MOD_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
case TRUNC_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case TRUNC_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case TRUNC_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
case CEIL_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case CEIL_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case CEIL_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
case FLOOR_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case FLOOR_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case FLOOR_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
case ROUND_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case ROUND_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case ROUND_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 3842 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 3868 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 3868 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
)
{
{
/* #line 3869 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
/* #line 3870 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TREE_OVERFLOW (tem) || !flag_trapping_math
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail841;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail841;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3871, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail841:;
}
}
}
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 3876 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 3876 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (SCALAR_FLOAT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail842;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3877, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_real (type, dconst2);
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail842:;
}
else
{
/* #line 3878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail843;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3879, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = build_int_cst (type, 2);
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail843:;
}
}
}
}
switch (TREE_CODE (_p1))
{
case VIEW_CONVERT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case VEC_COND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
tree _q42 = TREE_OPERAND (_q30, 2);
if (integer_each_onep (_q41))
{
if (integer_zerop (_q42))
{
{
/* #line 4593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
tree res = generic_simplify_309 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case VIEW_CONVERT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
tree _q32 = TREE_OPERAND (_q20, 2);
if (integer_each_onep (_q31))
{
if (integer_zerop (_q32))
{
{
/* #line 4593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q30, _q31, _q32 };
tree res = generic_simplify_309 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
if (integer_each_onep (_q31))
{
if (integer_zerop (_q32))
{
{
/* #line 4593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
tree res = generic_simplify_309 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case VEC_COND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
if (integer_each_onep (_q21))
{
if (integer_zerop (_q22))
{
{
/* #line 4593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q21, _q22 };
tree res = generic_simplify_309 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case RDIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_163 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case VEC_PERM_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
switch (TREE_CODE (_q20))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (tree_vec_same_elem_p (_q31))
{
if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
{
{
/* #line 7729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
tree res = generic_simplify_247 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if (tree_vec_same_elem_p (_q30))
{
if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
{
{
/* #line 7729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
tree res = generic_simplify_247 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_POPCOUNT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_208 (loc, type, _p0, _p1, captures, CFN_POPCOUNT);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case VEC_PERM_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
switch (TREE_CODE (_q30))
{
case MULT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (tree_vec_same_elem_p (_q41))
{
if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
{
{
/* #line 7729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q41, _q32, _p0 };
tree res = generic_simplify_247 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if (tree_vec_same_elem_p (_q40))
{
if ((_q31 == _q30 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q30, 0) && types_match (_q31, _q30)))
{
{
/* #line 7729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _q40, _q32, _p0 };
tree res = generic_simplify_247 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail844;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail844;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 182, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail844:;
}
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 2186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail845;
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_op0;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail845:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 2190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail846;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2190, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
{
tree _o2[2], _r2;
_o2[0] = captures[3];
_o2[1] = captures[4];
_r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail846:;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_zerop (_p0))
{
{
/* #line 187 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail847;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail847;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 187, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail847:;
}
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q41, 0);
if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
{
{
/* #line 2204 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q50 };
/* #line 2204 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail848;
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 _r;
_r = captures[3];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail848:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 2210 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
/* #line 2210 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail849;
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_op0;
res_op0 = captures[3];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[4]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
return _r;
}
next_after_fail849:;
}
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q31, 0);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2204 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _p1, _q40 };
/* #line 2204 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail850;
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 _r;
_r = captures[3];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail850:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
{
{
/* #line 2210 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
/* #line 2210 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail851;
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_op0;
res_op0 = captures[3];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[4]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
return _r;
}
next_after_fail851:;
}
}
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
{
/* #line 2222 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
{
/* #line 2222 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail852;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail852;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2223, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = algn;
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail852:;
}
}
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail853;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail853;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 182, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail853:;
}
}
if (real_zerop (_p1))
{
{
/* #line 204 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 204 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (fold_real_zero_addition_p (type, captures[0], captures[1], 1)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail854;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 205, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail854:;
}
}
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, MINUS_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 237 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 237 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!FLOAT_TYPE_P (type)
|| (!tree_expr_maybe_nan_p (captures[0])
&& !tree_expr_maybe_infinite_p (captures[0])
&& (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
|| !HONOR_SIGNED_ZEROS (type)))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail855;
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 _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail855:;
}
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
case TRUNC_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q20, 0))
{
if ((_q51 == _q61 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q61, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _q20, _q61 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q51))
{
case TRUNC_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q20, 0))
{
if ((_q71 == _q50 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q50, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q50 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q40))
{
case TRUNC_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
if ((_q41 == _q51 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q51, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q20, _q51 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q41))
{
case TRUNC_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q41, 0);
tree _q61 = TREE_OPERAND (_q41, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q20, 0))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || operand_equal_p (_q61, _q40, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _q20, _q40 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case MULT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
case TRUNC_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _p0, 0))
{
if ((_q41 == _q51 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q51, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _p0, _q51 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q41))
{
case TRUNC_DIV_EXPR:
{
tree _q60 = TREE_OPERAND (_q41, 0);
tree _q61 = TREE_OPERAND (_q41, 1);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _p0, 0))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || operand_equal_p (_q61, _q40, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _p0, _q40 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case TRUNC_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _q41, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _p0, _q41 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case TRUNC_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
tree _q51 = TREE_OPERAND (_q31, 1);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _p0, 0))
{
if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q30, 0))
{
{
/* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _p0, _q30 };
tree res = generic_simplify_65 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q40))
{
case TRUNC_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
if (integer_onep (_q41))
{
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 693 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q50 };
tree res = generic_simplify_387 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case TRUNC_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_onep (_q31))
{
if ((_q21 == _q41 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q41, 0) && types_match (_q21, _q41)))
{
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 693 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q20, _q30, _q40 };
tree res = generic_simplify_387 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1 };
tree res = generic_simplify_369 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1 };
tree res = generic_simplify_369 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1 };
tree res = generic_simplify_369 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1 };
tree res = generic_simplify_369 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 1011 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
/* #line 1011 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (~wi::to_wide (captures[2]) == wi::to_wide (captures[4])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail856;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1012, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[4])) goto next_after_fail856;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = unshare_expr (captures[4]);
_r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail856:;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1017 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_375 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1017 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_375 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1017 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
tree res = generic_simplify_375 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1017 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
tree res = generic_simplify_375 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if (integer_onep (_q51))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
if (integer_onep (_q51))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
{
tree _q50_pops[1];
if (tree_nop_convert (_q50, _q50_pops))
{
tree _q60 = _q50_pops[0];
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
if (integer_onep (_q51))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
if (integer_onep (_q51))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q50 = _p1_pops[0];
switch (TREE_CODE (_q50))
{
case PLUS_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
{
tree _q60_pops[1];
if (tree_nop_convert (_q60, _q60_pops))
{
tree _q70 = _q60_pops[0];
switch (TREE_CODE (_q70))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 1347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
&& !TYPE_SATURATING (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail857;
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_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail857:;
}
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 1354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
&& !TYPE_SATURATING (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail858;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1356, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail858:;
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_all_onesp (_q21))
{
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q70 = _p1_pops[0];
switch (TREE_CODE (_q70))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
{
if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
}
}
}
break;
}
default:;
}
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_all_onesp (_q21))
{
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_p1, 0);
tree _q81 = TREE_OPERAND (_p1, 1);
if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
{
if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q80 = _p1_pops[0];
switch (TREE_CODE (_q80))
{
case BIT_IOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q90 == _q41 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q41, 0) && types_match (_q90, _q41)))
{
if ((_q91 == _q40 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q40, 0) && types_match (_q91, _q40)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1361 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_398 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1361 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_398 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1366 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail859;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1366, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail859:;
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1371 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail860;
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;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail860:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_all_onesp (_q31))
{
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_p1, 0);
tree _q81 = TREE_OPERAND (_p1, 1);
if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
{
if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q80 = _p1_pops[0];
switch (TREE_CODE (_q80))
{
case BIT_IOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q90 == _q41 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q41, 0) && types_match (_q90, _q41)))
{
if ((_q91 == _q40 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q40, 0) && types_match (_q91, _q40)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
}
}
}
break;
}
default:;
}
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
switch (TREE_CODE (_q40))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if (integer_all_onesp (_q31))
{
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q90 = TREE_OPERAND (_p1, 0);
tree _q91 = TREE_OPERAND (_p1, 1);
if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
{
if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
{
if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q90 = _p1_pops[0];
switch (TREE_CODE (_q90))
{
case BIT_IOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50)))
{
if ((_q101 == _q51 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q51, 0) && types_match (_q101, _q51)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q100 == _q51 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q51, 0) && types_match (_q100, _q51)))
{
if ((_q101 == _q50 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q50, 0) && types_match (_q101, _q50)))
{
{
/* #line 1407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
tree res = generic_simplify_306 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
{
tree _q60_pops[1];
if (tree_nop_convert (_q60, _q60_pops))
{
tree _q70 = _q60_pops[0];
switch (TREE_CODE (_q70))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
{
if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
{
if (integer_onep (_q61))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q60 = _p1_pops[0];
switch (TREE_CODE (_q60))
{
case PLUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q70))
{
case BIT_IOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if (integer_onep (_q71))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
{
if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
{
if (integer_onep (_q71))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
{
tree _q70_pops[1];
if (tree_nop_convert (_q70, _q70_pops))
{
tree _q80 = _q70_pops[0];
switch (TREE_CODE (_q80))
{
case BIT_IOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
if (integer_onep (_q71))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
{
if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
{
if (integer_onep (_q71))
{
{
/* #line 1416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
tree res = generic_simplify_118 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
if (tree_negate_expr_p (_p1))
{
{
/* #line 1616 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 1616 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail861;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1617, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail861:;
}
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p1, _q40, _q51, _q20 };
tree res = generic_simplify_428 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q51, _p1, _q40, _q50, _q20 };
tree res = generic_simplify_428 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p1, _p1, _q41, _q20 };
tree res = generic_simplify_161 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _p1, _q40, _q20 };
tree res = generic_simplify_161 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 2228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
/* #line 2228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
{
/* #line 2229 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2230 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[0], captures[1], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail862;
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 _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail862:;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 2234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
/* #line 2234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
)
{
{
/* #line 2235 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2236 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[0], captures[1], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail863;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2237, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail863:;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p1, _q30, _q41, _p0 };
tree res = generic_simplify_428 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
tree res = generic_simplify_428 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q30, _p1, _p1, _q31, _p0 };
tree res = generic_simplify_161 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
{
{
/* #line 1848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
tree res = generic_simplify_161 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail864;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail864:;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail865;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail865:;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail866;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail866:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail867;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail867:;
}
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2011 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 2011 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail868;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2014, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail868:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2038 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
/* #line 2038 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail869;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2041, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail869:;
}
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
/* #line 2023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
&& !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail870;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2025, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail870:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2050 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
/* #line 2050 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
&& !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail871;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2052, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail871:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_293 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_293 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
{
tree _q21_pops[1];
if (tree_nop_convert (_q21, _q21_pops))
{
tree _q40 = _q21_pops[0];
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_136 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_136 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
{
tree _q31_pops[1];
if (tree_nop_convert (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
tree res = generic_simplify_288 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
tree res = generic_simplify_136 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_136 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
{
tree _q31_pops[1];
if (tree_nop_convert (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_334 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_334 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
tree _q40_pops[1];
if (tree_nop_convert (_q40, _q40_pops))
{
tree _q50 = _q40_pops[0];
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
{
tree _q41_pops[1];
if (tree_nop_convert (_q41, _q41_pops))
{
tree _q60 = _q41_pops[0];
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
tree _q40_pops[1];
if (tree_nop_convert (_q40, _q40_pops))
{
tree _q50 = _q40_pops[0];
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
tree res = generic_simplify_334 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
tree res = generic_simplify_334 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_342 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_342 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
if (res) return res;
}
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
if (res) return res;
}
}
}
if (CONSTANT_CLASS_P (_q20))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_190 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
if (integer_each_onep (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_400 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2810 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail872;
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_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail872:;
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
tree res = generic_simplify_5 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
tree res = generic_simplify_5 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if (integer_each_onep (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_400 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (CONSTANT_CLASS_P (_q31))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
if (res) return res;
}
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (CONSTANT_CLASS_P (_q31))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
if (res) return res;
}
}
}
if (CONSTANT_CLASS_P (_q30))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_190 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
}
}
if (CONSTANT_CLASS_P (_p0))
{
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if (CONSTANT_CLASS_P (_q30))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
tree res = generic_simplify_197 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (CONSTANT_CLASS_P (_q40))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
tree res = generic_simplify_197 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
}
}
if (integer_all_onesp (_p0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2789 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (type) != COMPLEX_TYPE
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail873;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail873;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2790, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail873:;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
tree res = generic_simplify_5 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
tree res = generic_simplify_5 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2852 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TYPE_OVERFLOW_UNDEFINED (type)
&& element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
)
{
{
/* #line 2855 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail874;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2856, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail874:;
}
}
else
{
/* #line 2857 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail875;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2865, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail875:;
}
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case PLUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
tree res = generic_simplify_347 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
tree res = generic_simplify_347 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
tree res = generic_simplify_347 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
tree res = generic_simplify_347 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case POINTER_PLUS_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
/* #line 2904 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TYPE_OVERFLOW_UNDEFINED (type)
&& element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
)
{
{
/* #line 2907 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail876;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2908, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
{
tree _o2[1], _r2;
_o2[0] = captures[2];
if (TREE_TYPE (_o2[0]) != utype)
_r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
else
_r2 = _o2[0];
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail876:;
}
}
else
{
/* #line 2909 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail877;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2919, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[2];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail877:;
}
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case NEGATE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
CASE_CONVERT:
{
tree _q90 = TREE_OPERAND (_q80, 0);
switch (TREE_CODE (_q90))
{
case LT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case MINUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_zerop (_p0))
{
{
/* #line 3884 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail878;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail878;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3884, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail878:;
}
}
if (real_zerop (_p0))
{
{
/* #line 3894 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 3894 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (fold_real_zero_addition_p (type, captures[1], captures[0], 0)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail879;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3895, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail879:;
}
}
}
switch (TREE_CODE (_p1))
{
case VIEW_CONVERT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case VEC_COND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
tree _q42 = TREE_OPERAND (_q30, 2);
if (integer_each_onep (_q41))
{
if (integer_zerop (_q42))
{
{
/* #line 4603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
tree res = generic_simplify_141 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
if (integer_each_onep (_q31))
{
if (integer_zerop (_q32))
{
{
/* #line 4603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
tree res = generic_simplify_141 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case RDIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_163 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case VEC_PERM_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
switch (TREE_CODE (_q20))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (tree_vec_same_elem_p (_q31))
{
if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
{
{
/* #line 7733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
tree res = generic_simplify_365 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if (tree_vec_same_elem_p (_q30))
{
if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
{
{
/* #line 7733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
tree res = generic_simplify_365 (loc, type, _p0, _p1, captures);
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail880;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail880;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 182, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail880:;
}
}
switch (TREE_CODE (_p0))
{
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 991 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
if (integer_all_onesp (_q21))
{
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_all_onesp (_q51))
{
{
/* #line 1000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q61, _q21 };
tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1032 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_384 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1032 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_384 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p0 };
tree res = generic_simplify_203 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p0 };
tree res = generic_simplify_203 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p0 };
tree res = generic_simplify_203 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p0 };
tree res = generic_simplify_203 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1032 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_384 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1032 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_384 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _p1 };
tree res = generic_simplify_312 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _p1 };
tree res = generic_simplify_312 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q30, _p1 };
tree res = generic_simplify_312 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1037 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q30, _p1 };
tree res = generic_simplify_312 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1057 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q41 };
tree res = generic_simplify_396 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 1057 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 };
tree res = generic_simplify_396 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1057 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q31 };
tree res = generic_simplify_396 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 1057 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
tree res = generic_simplify_396 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1068 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
tree res = generic_simplify_2 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1068 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
tree res = generic_simplify_2 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q21, _q20 };
tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1068 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_178 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1068 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_178 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q21, _q20 };
tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q61 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q60 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q61 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q60 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q71 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q70 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q71 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q70 };
tree res = generic_simplify_413 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _q31 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _q30 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _q31 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _q30 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _q41 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _q40 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _q41 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1088 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _q40 };
tree res = generic_simplify_409 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_all_onesp (_p1))
{
{
/* #line 1178 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail881;
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 _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail881:;
}
}
if (integer_zerop (_p1))
{
{
/* #line 1183 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail882;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail882;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1183, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail882:;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_AND_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q51, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q51, _q50, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q30))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q41 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 1217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q20, _q30 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _q31 };
tree res = generic_simplify_250 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q31, _q30 };
tree res = generic_simplify_250 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q61, _q30, _q31 };
tree res = generic_simplify_250 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q61, _q31, _q30 };
tree res = generic_simplify_250 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0, _q20 };
tree res = generic_simplify_133 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1311 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0, _q20 };
tree res = generic_simplify_138 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _p0 };
tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _p0 };
tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 1291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
tree res = generic_simplify_75 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_133 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_60 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_60 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1311 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_138 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q71 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q70 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q71 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q70 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q61 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q60 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q61 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q60 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_148 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q61 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q60 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q61 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q60 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q51 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q51 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q50 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q21 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q41, _q40, _q20 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1, _q60 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1, _q61 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1, _q60 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1, _q61 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _p0, _q21 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q51, _q21, _p0, _q20 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 1843 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q51, _q20, _p0, _q21 };
tree res = generic_simplify_266 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41, _q31 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q40, _q31 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
tree _q51 = TREE_OPERAND (_q31, 1);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _p0, _q51, _q30 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
{
{
/* #line 1720 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _p0, _q50, _q30 };
tree res = generic_simplify_212 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 1731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 2155 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_min_value (_q51))
{
{
/* #line 2341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_142 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_max_value (_q51))
{
{
/* #line 2356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_121 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_142 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_max_value (_q51))
{
{
/* #line 2356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_121 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _p0, _q20 };
/* #line 2372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail883;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail883;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2374, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail883:;
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
if (tree_min_value (_q21))
{
switch (TREE_CODE (_p1))
{
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
tree res = generic_simplify_399 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
tree res = generic_simplify_399 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2346 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q51 };
tree res = generic_simplify_283 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2346 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_283 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if (tree_max_value (_q21))
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
tree res = generic_simplify_340 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
tree res = generic_simplify_340 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_348 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_348 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_min_value (_q51))
{
{
/* #line 2346 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_225 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_max_value (_q51))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_min_value (_q51))
{
{
/* #line 2351 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_max_value (_q51))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2346 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_225 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_max_value (_q51))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2351 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_max_value (_q51))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_346 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_144 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
if (tree_min_value (_q21))
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2351 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2351 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_72 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
/* #line 2372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail884;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail884;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2374, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail884:;
}
}
}
break;
}
default:;
}
}
if (tree_max_value (_q21))
{
switch (TREE_CODE (_p1))
{
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_348 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_348 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LSHIFT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3054 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3054 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
if (tree_truth_valued_p (_p1))
{
{
/* #line 1780 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_56 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
}
}
if (tree_truth_valued_p (_p0))
{
{
tree _p1_pops[1];
if (tree_logical_inverted_value (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1780 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_56 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LSHIFT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_101 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case UNORDERED_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
{
switch (TREE_CODE (_p1))
{
case UNORDERED_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q50 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q50, 0) && types_match (_q51, _q50)))
{
{
/* #line 5238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
/* #line 5238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (captures[0], captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail885;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5239, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail885:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 5246 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q51 };
tree res = generic_simplify_351 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 5246 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 };
tree res = generic_simplify_351 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case UNORDERED_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 5246 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_303 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5246 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _p0, _q20 };
tree res = generic_simplify_303 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail886;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail886;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail886;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail886;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail886;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail886;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail886:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail887;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail887;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail887;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail887;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail887:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail888;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail888;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail888;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail888;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail888;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail888;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail888:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail889;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail889;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail889;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail889;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail889:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail890;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail890;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail890;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail890;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail890;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail890;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail890:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail891;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail891;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail891;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail891;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail891:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail892;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail892;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail892;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail892;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail892;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail892;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail892:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail893;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail893;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail893;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail893;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail893:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail894;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail894;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail894;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail894;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail894;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail894;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail894:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail895;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail895;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail895;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail895;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail895:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail896;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail896;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail896;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail896;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail896;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail896;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail896:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail897;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail897;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail897;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail897;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail897:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail898;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail898;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail898;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail898;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail898;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail898;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail898:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail899;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail899;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail899;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail899;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail899:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail900;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail900;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail900;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail900;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail900;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail900;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail900:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail901;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail901;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail901;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail901;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail901:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_164 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail902;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail902;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 182, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail902:;
}
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
{
/* #line 1023 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q61, _q21 };
tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_345 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 1042 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_388 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
{
/* #line 1042 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q30 };
tree res = generic_simplify_388 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
tree res = generic_simplify_391 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 1047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
tree res = generic_simplify_391 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
switch (TREE_CODE (_q41))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q41, 0);
{
/* #line 1042 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q60 };
tree res = generic_simplify_388 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 1042 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_388 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_391 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 1047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
tree res = generic_simplify_391 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_AND_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q71))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1196 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 1201 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail903;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1201, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail903:;
}
}
if (integer_all_onesp (_p1))
{
{
/* #line 1206 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail904;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1206, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail904:;
}
}
switch (TREE_CODE (_p0))
{
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
{
/* #line 1391 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1391 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1306 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1296 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1306 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1324 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
{
/* #line 1391 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1391 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_84 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1306 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1306 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_63 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1324 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_62 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_67 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 1440 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
{
{
/* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
tree res = generic_simplify_120 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
{
/* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
tree res = generic_simplify_285 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
{
/* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
tree res = generic_simplify_285 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
case INTEGER_CST:
{
{
/* #line 1461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_285 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_285 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
case INTEGER_CST:
{
{
/* #line 1461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1 };
tree res = generic_simplify_254 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_AND_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
{
{
/* #line 1495 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
tree res = generic_simplify_124 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q70 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q71 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q70 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q61 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q61 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q60 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_148 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q61 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q60 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q61 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q60 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_220 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 1731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (tree_truth_valued_p (_q20))
{
if (tree_truth_valued_p (_q21))
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail905;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail905:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail906;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail906:;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail907;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail907:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail908;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail908:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_truth_valued_p (_q50))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
if (tree_truth_valued_p (_q51))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail909;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail909:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail910;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail910:;
}
}
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_truth_valued_p (_q50))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
if (tree_truth_valued_p (_q51))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail911;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail911:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail912;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail912:;
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
if (tree_truth_valued_p (_p1))
{
{
/* #line 1780 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_56 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
}
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
{
/* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1 };
tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
}
}
if (tree_truth_valued_p (_p0))
{
{
tree _p1_pops[1];
if (tree_logical_inverted_value (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1780 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_56 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
tree res = generic_simplify_254 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 2155 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3047 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LSHIFT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3054 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3054 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LSHIFT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 3072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_101 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case NEGATE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
CASE_CONVERT:
{
tree _q90 = TREE_OPERAND (_q80, 0);
switch (TREE_CODE (_q90))
{
case LT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case NEGATE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
CASE_CONVERT:
{
tree _q90 = TREE_OPERAND (_q80, 0);
switch (TREE_CODE (_q90))
{
case LT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q100 = TREE_OPERAND (_q90, 0);
tree _q101 = TREE_OPERAND (_q90, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q100 = TREE_OPERAND (_q31, 0);
tree _q101 = TREE_OPERAND (_q31, 1);
if ((_q100 == _p0 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _p0, 0) && types_match (_q100, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q101, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q101 == _p0 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _p0, 0) && types_match (_q101, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q100, _q40, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_q60))
{
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
switch (TREE_CODE (_q70))
{
CASE_CONVERT:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
case LT_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case EQ_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case NE_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q60, _q80, _q90, _q91 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case EQ_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case NE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q30, _q21, _q60, _q70, _q71 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q90 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q90, 0) && types_match (_p1, _q90)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q90, _q91, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q90 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q90, 0) && types_match (_p1, _q90)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q90, _q91, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q90 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q90, 0) && types_match (_p1, _q90)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q90, _q91, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q90 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q90, 0) && types_match (_p1, _q90)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q90, _q91, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q90 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q90, 0) && types_match (_p1, _q90)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q90, _q91, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q90 = TREE_OPERAND (_q21, 0);
tree _q91 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q90 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q90, 0) && types_match (_p1, _q90)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q90, _q91, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q91 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q91, 0) && types_match (_p1, _q91)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q91, _q90, _q30, _q50, _q60, _q61 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case LT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q21, 0);
tree _q71 = TREE_OPERAND (_q21, 1);
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q71 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q71, 0) && types_match (_p1, _q71)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _q71, _q70, _q20, _q30, _q40, _q41 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EQ_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
case NE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case GT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q31))
{
case BIT_XOR_EXPR:
{
tree _q80 = TREE_OPERAND (_q31, 0);
tree _q81 = TREE_OPERAND (_q31, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q81, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q81 == _p0 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _p0, 0) && types_match (_q81, _p0)))
{
{
/* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q80, _q30, _q40, _q50, _q51 };
tree res = generic_simplify_150 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
if (res) return res;
}
}
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 4688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 4696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
tree res = generic_simplify_85 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
if (res) return res;
}
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
if (res) return res;
}
}
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 4688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 4696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _p0, _q20 };
tree res = generic_simplify_85 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
if (res) return res;
}
}
break;
}
case UNORDERED_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
if (res) return res;
}
}
break;
}
case ORDERED_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
if (res) return res;
}
}
break;
}
case UNLT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
case UNLE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
case UNGT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
case UNGE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
case UNEQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
if (res) return res;
}
}
break;
}
case LTGT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_truep (_p1))
{
{
/* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_80 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
if (res) return res;
}
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_PARITY:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_PARITY:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITY);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_PARITYL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_PARITYL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYL);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_PARITYLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_PARITYLL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYLL);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_PARITYIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_PARITYIMAX:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYIMAX);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_PARITY:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_PARITY:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_PARITY);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail913;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail913;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 192, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail913:;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _p0, 0))
{
{
/* #line 245 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p0 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail914;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 245, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail914:;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/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 2242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail915;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2244, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail915:;
}
}
}
}
break;
}
default:;
}
{
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/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 2242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail916;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2244, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail916:;
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/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 2249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2250 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail917;
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 _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail917:;
}
}
}
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/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 2249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2250 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail918;
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 _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail918:;
}
}
}
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/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 2242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail919;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2244, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail919:;
}
}
}
}
break;
}
default:;
}
{
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
/* #line 2240 "/home/seti/riscv-gnu-toolchain/gcc/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 2242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail920;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2244, __FILE__, __LINE__);
{
tree _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail920:;
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/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 2249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2250 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail921;
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 _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail921:;
}
}
}
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
/* #line 2247 "/home/seti/riscv-gnu-toolchain/gcc/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 2249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2250 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[1], captures[3], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail922;
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 _r;
_r = build_int_cst_type (type, diff);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail922:;
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case ADDR_EXPR:
{
{
/* #line 2256 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
{
/* #line 2256 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
poly_int64 diff;
/* #line 2257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ptr_difference_const (captures[0], captures[2], &diff)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail923;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2258, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = build_int_cst_type (type, diff);
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail923:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
{
/* #line 2823 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = signed_type_for (TREE_TYPE (captures[1]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail924;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2827, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail924:;
}
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
{
/* #line 2870 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = signed_type_for (TREE_TYPE (captures[1]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail925;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2874, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail925:;
}
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail926;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2922, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail926:;
}
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
/* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
)
{
/* #line 2574 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((!FLOAT_TYPE_P (type) || flag_associative_math)
&& !FIXED_POINT_TYPE_P (type)
)
{
{
/* #line 2927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = signed_type_for (TREE_TYPE (captures[1]));
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail927;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2931, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[1];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, stype, _o2[0]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[3]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
return _r;
}
next_after_fail927:;
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_zerop (_p0))
{
{
/* #line 3887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail928;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail928;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3887, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail928:;
}
}
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 _p0, tree _p1)
{
if (integer_zerop (_p1))
{
{
/* #line 249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail929;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 249, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail929:;
}
}
if (real_zerop (_p1))
{
{
/* #line 266 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 266 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0])
&& (!HONOR_NANS (type) || !tree_expr_maybe_infinite_p (captures[0]))
&& (!HONOR_SIGNED_ZEROS (type) || tree_expr_nonnegative_p (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail930;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 269, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail930:;
}
}
}
if (real_onep (_p1))
{
{
/* #line 275 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 275 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_signaling_nan_p (captures[0])
&& (!HONOR_SIGNED_ZEROS (type)
|| !COMPLEX_FLOAT_TYPE_P (type))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail931;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail931;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 278, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail931:;
}
}
}
if (real_minus_onep (_p1))
{
{
/* #line 283 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 283 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_signaling_nan_p (captures[0])
&& (!HONOR_SIGNED_ZEROS (type)
|| !COMPLEX_FLOAT_TYPE_P (type))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail932;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail932;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 286, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail932:;
}
}
}
switch (TREE_CODE (_p0))
{
case SSA_NAME:
{
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 291 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& get_nonzero_bits (captures[0]) == 1
&& get_nonzero_bits (captures[1]) == 1
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail933;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 294, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail933:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case VECTOR_CST:
{
{
/* #line 300 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 300 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (initializer_each_zero_or_onep (captures[1])
&& !HONOR_SNANS (type)
&& !HONOR_SIGNED_ZEROS (type)
)
{
{
/* #line 303 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree itype = FLOAT_TYPE_P (type) ? unsigned_type_for (type) : type;
/* #line 304 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail934;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 309, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, itype, _o2[0]);
_o1[0] = _r2;
}
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = build_zero_cst (type);
_r2 = fold_build2_loc (loc, NE_EXPR, itype, _o2[0], _o2[1]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, itype, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail934:;
}
}
}
}
break;
}
case COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
switch (TREE_CODE (_q30))
{
case GT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_onep (_q31))
{
if (real_minus_onep (_q32))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail935;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail935;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail935:;
}
}
}
}
}
}
break;
}
case GE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_onep (_q31))
{
if (real_minus_onep (_q32))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail936;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail936;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail936:;
}
}
}
}
}
}
break;
}
case LT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_onep (_q31))
{
if (real_minus_onep (_q32))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail937;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail937;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail937:;
}
}
}
}
}
}
break;
}
case LE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_onep (_q31))
{
if (real_minus_onep (_q32))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail938;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail938;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail938:;
}
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case COND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
switch (TREE_CODE (_q20))
{
case GT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (real_zerop (_q31))
{
if (real_onep (_q21))
{
if (real_minus_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail939;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail939;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail939:;
}
}
}
}
}
if (real_minus_onep (_q21))
{
if (real_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail940;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail940;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail940:;
}
}
}
}
}
}
break;
}
case GE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (real_zerop (_q31))
{
if (real_onep (_q21))
{
if (real_minus_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail941;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail941;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail941:;
}
}
}
}
}
if (real_minus_onep (_q21))
{
if (real_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail942;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail942;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail942:;
}
}
}
}
}
}
break;
}
case LT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (real_zerop (_q31))
{
if (real_onep (_q21))
{
if (real_minus_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail943;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail943;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail943:;
}
}
}
}
}
if (real_minus_onep (_q21))
{
if (real_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail944;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail944;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail944:;
}
}
}
}
}
}
break;
}
case LE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (real_zerop (_q31))
{
if (real_onep (_q21))
{
if (real_minus_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
/* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail945;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail945;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 322, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail945:;
}
}
}
}
}
if (real_minus_onep (_q21))
{
if (real_onep (_q22))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail946;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail946;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail946:;
}
}
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
switch (TREE_CODE (_q30))
{
case GT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_minus_onep (_q31))
{
if (real_onep (_q32))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail947;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail947;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail947:;
}
}
}
}
}
}
break;
}
case GE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_minus_onep (_q31))
{
if (real_onep (_q32))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail948;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail948;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail948:;
}
}
}
}
}
}
break;
}
case LT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_minus_onep (_q31))
{
if (real_onep (_q32))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail949;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail949;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail949:;
}
}
}
}
}
}
break;
}
case LE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (real_zerop (_q41))
{
if (real_minus_onep (_q31))
{
if (real_onep (_q32))
{
{
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
/* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail950;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail950;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 330, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail950:;
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COPYSIGNF:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGN:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNL:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF16:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32X:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64X:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
if (res) return res;
}
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128X:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
if (res) return res;
}
}
}
}
break;
case CFN_COPYSIGN:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_174 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
if (res) return res;
}
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p0))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_COPYSIGNF:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGN:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNL:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF16:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32X:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64X:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128X:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_COPYSIGN:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if (real_onep (_q20))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_343 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COPYSIGNF:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGN:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNL:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF16:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32X:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64X:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128X:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
case CFN_COPYSIGN:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if (real_onep (_q30))
{
switch (TREE_CODE (_q31))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
default:;
}
break;
default:;
}
if (integer_onep (_p1))
{
{
/* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, MULT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 490 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
{
/* #line 490 "/home/seti/riscv-gnu-toolchain/gcc/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 497 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!overflow || TYPE_OVERFLOW_WRAPS (type)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail951;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail951;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail951;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 498, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = wide_int_to_tree (type, mul);
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail951:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 746 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 746 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail952;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 747, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail952:;
}
}
}
}
break;
}
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 826 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail953;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 826, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail953;
tree res_op0;
res_op0 = unshare_expr (captures[1]);
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail953:;
}
}
break;
}
case ABSU_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail954;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 831, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
captures[2] = _r1;
}
res_op0 = unshare_expr (captures[2]);
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail954:;
}
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_COPYSIGNF:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGN:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNL:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF16:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF32X:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF64X:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_COPYSIGNF128X:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
if (res) return res;
}
}
}
break;
case CFN_COPYSIGN:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 885 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case LSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_onep (_q40))
{
{
/* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_onep (_q30))
{
{
/* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _q31 };
tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if (integer_onep (_q30))
{
{
/* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_onep (_q20))
{
{
/* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
tree res = generic_simplify_30 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
/* #line 966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_associative_math
&& single_use (captures[0])
)
{
{
/* #line 968 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
/* #line 970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail955;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail955;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail955;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 971, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = tem;
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail955:;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if (integer_zerop (_q61))
{
if (integer_onep (_q31))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q100 = _p1_pops[0];
if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if (integer_zerop (_q51))
{
if (integer_onep (_q31))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q90 = _p1_pops[0];
if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if (integer_zerop (_q71))
{
if (integer_onep (_q31))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q110 = _p1_pops[0];
if ((_q110 == _q70 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q70, 0) && types_match (_q110, _q70)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if (integer_zerop (_q61))
{
if (integer_onep (_q31))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q100 = _p1_pops[0];
if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if (integer_zerop (_q71))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if (integer_zerop (_q61))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q40_pops[1];
if (tree_nop_convert (_q40, _q40_pops))
{
tree _q50 = _q40_pops[0];
switch (TREE_CODE (_q50))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q60, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if (integer_zerop (_q81))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if (integer_zerop (_q71))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
switch (TREE_CODE (_q40))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q60, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if (integer_zerop (_q81))
{
if (integer_onep (_q51))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if (integer_zerop (_q71))
{
if (integer_onep (_q51))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q50_pops[1];
if (tree_nop_convert (_q50, _q50_pops))
{
tree _q60 = _q50_pops[0];
switch (TREE_CODE (_q60))
{
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
switch (TREE_CODE (_q70))
{
CASE_CONVERT:
{
tree _q80 = TREE_OPERAND (_q70, 0);
switch (TREE_CODE (_q80))
{
case LT_EXPR:
{
tree _q90 = TREE_OPERAND (_q80, 0);
tree _q91 = TREE_OPERAND (_q80, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if (integer_zerop (_q91))
{
if (integer_onep (_q51))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if (integer_zerop (_q81))
{
if (integer_onep (_q51))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
}
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
{
if (integer_zerop (_q71))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q40_pops[1];
if (tree_nop_convert (_q40, _q40_pops))
{
tree _q50 = _q40_pops[0];
switch (TREE_CODE (_q50))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q60, 0);
switch (TREE_CODE (_q70))
{
case LT_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
{
if (integer_zerop (_q81))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if (integer_zerop (_q51))
{
if (integer_onep (_q21))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q90 = _p1_pops[0];
if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_zerop (_q41))
{
if (integer_onep (_q21))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q80 = _p1_pops[0];
if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if (integer_zerop (_q61))
{
if (integer_onep (_q21))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q100 = _p1_pops[0];
if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if (integer_zerop (_q51))
{
if (integer_onep (_q21))
{
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q90 = _p1_pops[0];
if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
tree res = generic_simplify_273 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
if (integer_zerop (_q61))
{
if (integer_onep (_q31))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
if (integer_zerop (_q51))
{
if (integer_onep (_q31))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q30_pops[1];
if (tree_nop_convert (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
{
if (integer_zerop (_q71))
{
if (integer_onep (_q31))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
if (integer_zerop (_q61))
{
if (integer_onep (_q31))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
switch (TREE_CODE (_q50))
{
case LT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
if (integer_zerop (_q61))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _q40_pops[1];
if (tree_nop_convert (_q40, _q40_pops))
{
tree _q50 = _q40_pops[0];
switch (TREE_CODE (_q50))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
switch (TREE_CODE (_q60))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
{
if (integer_zerop (_q71))
{
if (integer_onep (_q41))
{
{
/* #line 1549 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_175 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if (tree_negate_expr_p (_q50))
{
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (tree_negate_expr_p (_p1))
{
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
case LT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
case GE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
case LE_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
{
/* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
{
{
/* #line 3835 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
tree res = generic_simplify_4 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 3835 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
tree res = generic_simplify_4 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q51 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q51, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _q51 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q41, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _q41 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q40))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q51 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q51, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _q51 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q41, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _q41 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (tree_negate_expr_p (_q20))
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
if (tree_negate_expr_p (_q40))
{
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (tree_negate_expr_p (_p1))
{
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 3835 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
tree res = generic_simplify_4 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
{
{
/* #line 3835 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
tree res = generic_simplify_4 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case EXACT_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q41, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _q41 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q31 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case EXACT_DIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q41, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _q41 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 3848 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _q31 };
tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (tree_negate_expr_p (_p0))
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
}
if (integer_minus_onep (_p1))
{
{
/* #line 3900 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail956;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail956;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3900, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail956:;
}
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
{
/* #line 3906 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_251 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3906 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
tree res = generic_simplify_251 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail957;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, type, 1, res_op0);
if (!_r)
goto next_after_fail957;
return _r;
}
next_after_fail957:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail958;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, type, 1, res_op0);
if (!_r)
goto next_after_fail958;
return _r;
}
next_after_fail958:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail959;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, type, 1, res_op0);
if (!_r)
goto next_after_fail959;
return _r;
}
next_after_fail959:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTF16:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF16);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_SQRTF32:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_SQRTF64:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_SQRTF128:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_SQRTF32X:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32X);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_SQRTF64X:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64X);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_SQRTF128X:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128X);
if (res) return res;
}
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, CFN_SQRT);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail960;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_SQRT, type, 1, res_op0);
if (!_r)
goto next_after_fail960;
return _r;
}
next_after_fail960:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_CBRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_CBRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail961;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, type, 1, res_op0);
if (!_r)
goto next_after_fail961;
return _r;
}
next_after_fail961:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_CBRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_CBRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail962;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, type, 1, res_op0);
if (!_r)
goto next_after_fail962;
return _r;
}
next_after_fail962:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_CBRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_CBRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail963;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, type, 1, res_op0);
if (!_r)
goto next_after_fail963;
return _r;
}
next_after_fail963:;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXPF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXPF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail964;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
if (!_r)
goto next_after_fail964;
return _r;
}
next_after_fail964:;
}
}
}
break;
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail965;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail965;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
if (!_r)
goto next_after_fail965;
return _r;
}
next_after_fail965:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail966;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
if (!_r)
goto next_after_fail966;
return _r;
}
next_after_fail966:;
}
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail967;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail967;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
if (!_r)
goto next_after_fail967;
return _r;
}
next_after_fail967:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXPL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXPL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail968;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
if (!_r)
goto next_after_fail968;
return _r;
}
next_after_fail968:;
}
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail969;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail969;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
if (!_r)
goto next_after_fail969;
return _r;
}
next_after_fail969:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_EXP:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_EXP:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail970;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
if (!_r)
goto next_after_fail970;
return _r;
}
next_after_fail970:;
}
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail971;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail971;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
if (!_r)
goto next_after_fail971;
return _r;
}
next_after_fail971:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP2F:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP2F:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail972;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
if (!_r)
goto next_after_fail972;
return _r;
}
next_after_fail972:;
}
}
}
break;
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail973;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail973;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
if (!_r)
goto next_after_fail973;
return _r;
}
next_after_fail973:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP2:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP2:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail974;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
if (!_r)
goto next_after_fail974;
return _r;
}
next_after_fail974:;
}
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail975;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail975;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
if (!_r)
goto next_after_fail975;
return _r;
}
next_after_fail975:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP2L:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP2L:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail976;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
if (!_r)
goto next_after_fail976;
return _r;
}
next_after_fail976:;
}
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail977;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail977;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
if (!_r)
goto next_after_fail977;
return _r;
}
next_after_fail977:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_EXP2:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_EXP2:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail978;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
if (!_r)
goto next_after_fail978;
return _r;
}
next_after_fail978:;
}
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail979;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail979;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
if (!_r)
goto next_after_fail979;
return _r;
}
next_after_fail979:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP10F:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP10F:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail980;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
if (!_r)
goto next_after_fail980;
return _r;
}
next_after_fail980:;
}
}
}
break;
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail981;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail981;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
if (!_r)
goto next_after_fail981;
return _r;
}
next_after_fail981:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP10:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP10:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail982;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
if (!_r)
goto next_after_fail982;
return _r;
}
next_after_fail982:;
}
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail983;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail983;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
if (!_r)
goto next_after_fail983;
return _r;
}
next_after_fail983:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_EXP10L:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP10L:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail984;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
if (!_r)
goto next_after_fail984;
return _r;
}
next_after_fail984:;
}
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail985;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail985;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
if (!_r)
goto next_after_fail985;
return _r;
}
next_after_fail985:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_EXP10:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_EXP10:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail986;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
if (!_r)
goto next_after_fail986;
return _r;
}
next_after_fail986:;
}
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail987;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail987;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
if (!_r)
goto next_after_fail987;
return _r;
}
next_after_fail987:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POW10F:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POW10F:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail988;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
if (!_r)
goto next_after_fail988;
return _r;
}
next_after_fail988:;
}
}
}
break;
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail989;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail989;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
if (!_r)
goto next_after_fail989;
return _r;
}
next_after_fail989:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POW10:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POW10:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail990;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
if (!_r)
goto next_after_fail990;
return _r;
}
next_after_fail990:;
}
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail991;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail991;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
if (!_r)
goto next_after_fail991;
return _r;
}
next_after_fail991:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POW10L:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POW10L:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail992;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5967, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
if (!_r)
goto next_after_fail992;
return _r;
}
next_after_fail992:;
}
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
tree _q41 = CALL_EXPR_ARG (_p1, 1);
switch (TREE_CODE (_q40))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail993;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail993;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
if (!_r)
goto next_after_fail993;
return _r;
}
next_after_fail993:;
}
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXPF:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail994;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail994;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
if (!_r)
goto next_after_fail994;
return _r;
}
next_after_fail994:;
}
}
}
}
break;
case CFN_BUILT_IN_EXP2F:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail995;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail995;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
if (!_r)
goto next_after_fail995;
return _r;
}
next_after_fail995:;
}
}
}
}
break;
case CFN_BUILT_IN_EXP10F:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail996;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail996;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
if (!_r)
goto next_after_fail996;
return _r;
}
next_after_fail996:;
}
}
}
}
break;
case CFN_BUILT_IN_POW10F:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail997;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail997;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
if (!_r)
goto next_after_fail997;
return _r;
}
next_after_fail997:;
}
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXP:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail998;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail998;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
if (!_r)
goto next_after_fail998;
return _r;
}
next_after_fail998:;
}
}
}
}
break;
case CFN_BUILT_IN_EXP2:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail999;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail999;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
if (!_r)
goto next_after_fail999;
return _r;
}
next_after_fail999:;
}
}
}
}
break;
case CFN_BUILT_IN_EXP10:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1000;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1000;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
if (!_r)
goto next_after_fail1000;
return _r;
}
next_after_fail1000:;
}
}
}
}
break;
case CFN_BUILT_IN_POW10:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1001;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1001;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
if (!_r)
goto next_after_fail1001;
return _r;
}
next_after_fail1001:;
}
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_EXPL:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1002;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1002;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
if (!_r)
goto next_after_fail1002;
return _r;
}
next_after_fail1002:;
}
}
}
}
break;
case CFN_BUILT_IN_EXP2L:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1003;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1003;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
if (!_r)
goto next_after_fail1003;
return _r;
}
next_after_fail1003:;
}
}
}
}
break;
case CFN_BUILT_IN_EXP10L:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1004;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1004;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
if (!_r)
goto next_after_fail1004;
return _r;
}
next_after_fail1004:;
}
}
}
}
break;
case CFN_BUILT_IN_POW10L:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1005;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1005;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
if (!_r)
goto next_after_fail1005;
return _r;
}
next_after_fail1005:;
}
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_EXP:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1006;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1006;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
if (!_r)
goto next_after_fail1006;
return _r;
}
next_after_fail1006:;
}
}
}
}
break;
case CFN_EXP2:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1007;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1007;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
if (!_r)
goto next_after_fail1007;
return _r;
}
next_after_fail1007:;
}
}
}
}
break;
case CFN_EXP10:
if (call_expr_nargs (_p1) == 1)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
/* #line 6103 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1008;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6105, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[1];
_r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
if (!_r3)
goto next_after_fail1008;
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
if (!_r)
goto next_after_fail1008;
return _r;
}
next_after_fail1008:;
}
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_POW);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_TANF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COS:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_COS:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_COSF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_TANF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_TAN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_TANL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_TAN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
tree res = generic_simplify_106 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case REAL_CST:
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
if (res) return res;
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case REAL_CST:
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
if (res) return res;
}
break;
}
default:;
}
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case REAL_CST:
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
if (res) return res;
}
break;
}
default:;
}
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case REAL_CST:
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, CFN_POW);
if (res) return res;
}
break;
}
default:;
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p0))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_350 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_187 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_350 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_187 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_350 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_187 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_350 (loc, type, _p0, _p1, captures, CFN_POW);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_187 (loc, type, _p0, _p1, captures, CFN_POW);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POWIF:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWIF:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1009;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6312, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIF, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail1009;
return _r;
}
next_after_fail1009:;
}
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POWI:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWI:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1010;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6312, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWI, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail1010;
return _r;
}
next_after_fail1010:;
}
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POWIL:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWIL:
if (call_expr_nargs (_p1) == 2)
{
tree _q50 = CALL_EXPR_ARG (_p1, 0);
tree _q51 = CALL_EXPR_ARG (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations && canonicalize_math_p ()
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1011;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6312, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[4];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIL, type, 2, res_op0, res_op1);
if (!_r)
goto next_after_fail1011;
return _r;
}
next_after_fail1011:;
}
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 255 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_160 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 255 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_160 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case CEIL_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, EQ_EXPR, CEIL_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case FLOOR_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, EQ_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case ROUND_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, EQ_EXPR, ROUND_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case TRUNC_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, EQ_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (tree_truth_valued_p (_q20))
{
if (tree_truth_valued_p (_q21))
{
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1012;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1012:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1013;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1013:;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1014;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1014:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1015;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1015:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_truth_valued_p (_q50))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
if (tree_truth_valued_p (_q51))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1016;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1016:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1017;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1017:;
}
}
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_truth_valued_p (_q50))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
if (tree_truth_valued_p (_q51))
{
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1018;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1018:;
}
{
/* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1019;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
return _r;
}
next_after_fail1019:;
}
}
}
}
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1874 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case EXACT_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
switch (TREE_CODE (_q40))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q51))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1020;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1020:;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1021;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1021:;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1022;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1022:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1023;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1023:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2011 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 2011 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1024;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2014, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1024:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2038 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
/* #line 2038 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1025;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2041, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1025:;
}
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_59 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
if (tree_truth_valued_p (_p1))
{
{
/* #line 1785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
}
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
if (tree_truth_valued_p (_p0))
{
{
tree _p1_pops[1];
if (tree_logical_inverted_value (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q51))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
switch (TREE_CODE (_q40))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q40))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 2100 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case ADDR_EXPR:
{
{
/* #line 2264 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3250 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_170 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3259 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_with_possible_nonzero_bits2 (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
{
tree _p1_pops[1];
if (tree_with_certain_nonzero_bits2 (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
{
/* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
}
}
{
tree _p0_pops[1];
if (tree_with_certain_nonzero_bits2 (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
{
tree _p1_pops[1];
if (tree_with_possible_nonzero_bits2 (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
{
/* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
case MIN_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, EQ_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
case MAX_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_pow2p (_q30))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
}
}
}
if (integer_onep (_q30))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
}
}
}
break;
}
case RSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_pow2p (_q30))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3453 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
switch (TREE_CODE (_q30))
{
case LSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_onep (_q40))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3466 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case LROTATE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3616 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3624 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case RROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case RROTATE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3616 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3624 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4727 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_57 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4754 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_359 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 4787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 4787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, PLUS_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, MINUS_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
case REAL_CST:
{
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if (zerop (_p1))
{
{
/* #line 5319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_1 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 5387 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 5423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, EQ_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_SQRT, EQ_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (integer_pow2p (_q21))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 5499 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_418 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
}
}
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 5557 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 5557 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
tree res = generic_simplify_100 (loc, type, _p0, _p1, captures, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_114 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
tree res = generic_simplify_94 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_114 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
{
/* #line 5622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_58 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_onep (_p1))
{
{
/* #line 5772 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 5772 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
&& types_match (type, TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1026;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1026;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5774, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail1026:;
}
}
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case VECTOR_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
const enum tree_code cmp = EQ_EXPR;
const enum tree_code icmp = LE_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1027;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1027;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1027:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1028;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1028;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1028:;
}
}
}
}
}
}
}
break;
}
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
const enum tree_code cmp = EQ_EXPR;
const enum tree_code icmp = LE_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1029;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1029;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1029:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1030;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1030;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1030:;
}
}
}
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case VECTOR_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
const enum tree_code cmp = EQ_EXPR;
const enum tree_code icmp = LE_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1031;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1031;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1031:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1032;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1032;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1032:;
}
}
}
}
}
}
}
break;
}
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
const enum tree_code cmp = EQ_EXPR;
const enum tree_code icmp = LE_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1033;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1033;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1033:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1034;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1034;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1034:;
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
tree res = generic_simplify_156 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_362 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_362 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CLZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CLZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CLZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CLZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CLZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, EQ_EXPR, LT_EXPR, CFN_CLZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
if (res) return res;
}
}
}
break;
case CFN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_FFS:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFS);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX);
if (res) return res;
}
break;
}
default:;
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 255 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_160 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 255 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_160 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case CEIL_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, NE_EXPR, CEIL_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case FLOOR_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, NE_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case ROUND_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, NE_EXPR, ROUND_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case TRUNC_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, NE_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1864 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_166 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1874 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case EXACT_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
switch (TREE_CODE (_q40))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q51))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1035;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1035:;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1036;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1036:;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1037;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1037:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
/* #line 1995 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1038;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1998, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1038:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2011 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
/* #line 2011 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1039;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2014, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1039:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2038 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
/* #line 2038 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1040;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2041, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[2];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1040:;
}
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_59 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
if (tree_truth_valued_p (_p1))
{
{
/* #line 1785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
}
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
if (tree_truth_valued_p (_p0))
{
{
tree _p1_pops[1];
if (tree_logical_inverted_value (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
tree res = generic_simplify_69 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2067 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q51))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
switch (TREE_CODE (_q40))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q40))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_nop_convert (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
switch (TREE_CODE (_q30))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2076 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 2100 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q41))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q41, 0);
if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case INTEGER_CST:
{
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_367 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case POINTER_PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
case POINTER_PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case ADDR_EXPR:
{
{
/* #line 2264 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3250 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_170 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3259 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_426 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_with_possible_nonzero_bits2 (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
{
tree _p1_pops[1];
if (tree_with_certain_nonzero_bits2 (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
{
/* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
}
}
{
tree _p0_pops[1];
if (tree_with_certain_nonzero_bits2 (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
{
tree _p1_pops[1];
if (tree_with_possible_nonzero_bits2 (_p1, _p1_pops))
{
tree _q40 = _p1_pops[0];
{
/* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
}
}
switch (TREE_CODE (_p1))
{
case MIN_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
case MAX_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_pow2p (_q30))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
}
if (integer_onep (_q30))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
}
break;
}
case RSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_pow2p (_q30))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3453 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
{
tree _q20_pops[1];
if (tree_nop_convert (_q20, _q20_pops))
{
tree _q30 = _q20_pops[0];
switch (TREE_CODE (_q30))
{
case LSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_onep (_q40))
{
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 3570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3466 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case LROTATE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3616 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3624 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case RROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case RROTATE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 3616 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3624 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_83 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4727 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_57 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_370 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4765 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 4787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 4787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, MINUS_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
case REAL_CST:
{
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if (zerop (_p1))
{
{
/* #line 5319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_1 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 5387 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_p1))
{
{
/* #line 5423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_373 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 5429 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_357 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 5467 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (integer_pow2p (_q21))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 5499 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_418 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 5557 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
if (integer_pow2p (_q21))
{
if (integer_zerop (_p1))
{
{
/* #line 5557 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
tree res = generic_simplify_100 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_114 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
tree res = generic_simplify_94 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_114 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
{
/* #line 5622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_129 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_58 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 5766 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 5766 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
&& types_match (type, TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1041;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1041;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5768, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail1041:;
}
}
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case VECTOR_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
const enum tree_code cmp = NE_EXPR;
const enum tree_code icmp = GT_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1042;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1042;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1042:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1043;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1043;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1043:;
}
}
}
}
}
}
}
break;
}
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
const enum tree_code cmp = NE_EXPR;
const enum tree_code icmp = GT_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1044;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1044;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1044:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1045;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1045;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1045:;
}
}
}
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case VECTOR_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
const enum tree_code cmp = NE_EXPR;
const enum tree_code icmp = GT_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1046;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1046;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1046:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1047;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1047;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1047:;
}
}
}
}
}
}
}
break;
}
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
const enum tree_code cmp = NE_EXPR;
const enum tree_code icmp = GT_EXPR;
{
/* #line 5790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree csts = bitmask_inv_cst_vector_p (captures[2]);
/* #line 5791 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
)
{
{
/* #line 5792 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
? optab_vector : optab_default;
tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
/* #line 5795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (target_supports_op_p (utype, icmp, optab)
|| (optimize_vectors_before_lowering_p ()
&& (!target_supports_op_p (type, cmp, optab)
|| !target_supports_op_p (type, BIT_AND_EXPR, optab)))
)
{
/* #line 5799 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1048;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1048;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5800, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[1];
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1048:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1049;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1049;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5801, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = csts;
tree _r;
_r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1049:;
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_q31, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 5878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
tree res = generic_simplify_156 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_362 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_362 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CLZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CLZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CLZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CLZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CLZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7072 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_139 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_CLZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7146 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
if (res) return res;
}
}
}
break;
case CFN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_FFS:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFS);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7316 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSIMAX);
if (res) return res;
}
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 _p0, tree _p1)
{
if (integer_onep (_p1))
{
{
/* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case LSHIFT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if (integer_onep (_q50))
{
{
/* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
tree res = generic_simplify_264 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if (integer_onep (_q40))
{
{
/* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
tree res = generic_simplify_264 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case LSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_onep (_q40))
{
{
/* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
tree res = generic_simplify_131 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if (integer_onep (_q30))
{
{
/* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
tree res = generic_simplify_131 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (integer_zerop (_p0))
{
{
/* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_152 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_minus_onep (_p1))
{
{
/* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_196 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_pow2p (_q21))
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 737 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 737 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1050;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1050;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 738, __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 _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1050:;
}
}
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (integer_onep (_p0))
{
{
/* #line 457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& TYPE_PRECISION (type) > 1
&& !integer_zerop (captures[1])
&& (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
)
{
/* #line 461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1051;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 462, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = build_one_cst (type);
_r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1051:;
}
else
{
{
/* #line 463 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1052;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 464, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[1])) goto next_after_fail1052;
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = unshare_expr (captures[1]);
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = build_one_cst (utype);
_r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = build_int_cst (utype, 2);
_r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = build_zero_cst (type);
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1052:;
}
}
}
}
}
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 _p0, tree _p1)
{
if (integer_onep (_p1))
{
{
/* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_152 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_minus_onep (_p1))
{
{
/* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_196 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if (integer_onep (_p1))
{
{
/* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_152 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_minus_onep (_p1))
{
{
/* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_196 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
{
/* #line 446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_363 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR, TRUNC_DIV_EXPR);
if (res) return res;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, FLOOR_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if (integer_onep (_p1))
{
{
/* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_152 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_minus_onep (_p1))
{
{
/* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_196 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if (integer_onep (_p1))
{
{
/* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_152 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case SSA_NAME:
{
{
/* #line 408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (integer_minus_onep (_p1))
{
{
/* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_196 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 417 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_92 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 433 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 587 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_103 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 753 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
if (res) return res;
}
}
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 _p0, tree _p1)
{
{
/* #line 446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_363 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
if (integer_zerop (_p0))
{
{
/* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_128 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
if (integer_onep (_p1))
{
{
/* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
if (integer_minus_onep (_p1))
{
{
/* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case FLOOR_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 640 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 644 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_354 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
tree _q30_pops[1];
if (tree_power_of_two_cand (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
{
/* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
tree res = generic_simplify_162 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_power_of_two_cand (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
{
/* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
tree res = generic_simplify_162 (loc, type, _p0, _p1, captures, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 504 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 504 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (FLOAT_TYPE_P (type)
&& ! HONOR_NANS (type)
&& ! HONOR_INFINITIES (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1053;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 507, __FILE__, __LINE__);
{
tree _r;
_r = build_one_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1053:;
}
}
}
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_253 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_253 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ABS_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
{
{
/* #line 521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case ABS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case ABS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_38 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
if (real_onep (_p1))
{
{
/* #line 535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_signaling_nan_p (captures[0])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1054;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1054;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 536, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail1054:;
}
}
}
if (real_minus_onep (_p1))
{
{
/* #line 541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 541 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_signaling_nan_p (captures[0])
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1055;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1055;
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 _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1055:;
}
}
}
switch (TREE_CODE (_p0))
{
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
{
/* #line 544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
/* #line 544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_reciprocal_math
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1056;
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;
res_op0 = captures[1];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[2];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1056:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q31))
{
case REAL_CST:
{
{
/* #line 544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
/* #line 544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_reciprocal_math
)
{
{
/* #line 553 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
/* #line 555 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1057;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1057;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 556, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = tem;
_r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1057:;
}
}
}
}
break;
}
default:;
}
break;
}
case RDIV_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
/* #line 544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
/* #line 544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_reciprocal_math
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1058;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 561, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1058:;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 566 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1059;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 566, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1059:;
}
break;
}
case REAL_CST:
{
{
/* #line 603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize
)
{
/* #line 604 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_reciprocal_math
&& !real_zerop (captures[1])
)
{
{
/* #line 606 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 608 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1060;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1060;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 609, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1060:;
}
}
}
else
{
/* #line 610 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (REAL_CST != COMPLEX_CST
)
{
{
/* #line 611 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree inverse = exact_inverse (type, captures[1]);
/* #line 612 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1061;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1061;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = inverse;
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1061:;
}
}
}
}
}
}
break;
}
case COMPLEX_CST:
{
{
/* #line 603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize
)
{
/* #line 604 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_reciprocal_math
&& !real_zerop (captures[1])
)
{
{
/* #line 606 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 608 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1062;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1062;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 609, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1062:;
}
}
}
else
{
/* #line 610 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (COMPLEX_CST != COMPLEX_CST
)
{
{
/* #line 611 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree inverse = exact_inverse (type, captures[1]);
/* #line 612 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1063;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1063;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = inverse;
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1063:;
}
}
}
}
}
}
break;
}
case VECTOR_CST:
{
{
/* #line 603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize
)
{
/* #line 604 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_reciprocal_math
&& !real_zerop (captures[1])
)
{
{
/* #line 606 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 608 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tem
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1064;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1064;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 609, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = tem;
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1064:;
}
}
}
else
{
/* #line 610 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_CST != COMPLEX_CST
)
{
{
/* #line 611 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree inverse = exact_inverse (type, captures[1]);
/* #line 612 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1065;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1065;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = inverse;
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1065:;
}
}
}
}
}
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1066;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1066;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1066:;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1067;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1067;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1067:;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1068;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1068;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1068:;
}
}
break;
}
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1069;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1069;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1069:;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CBRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1070;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1070;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1070:;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CBRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1071;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1071;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1071:;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CBRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
switch (TREE_CODE (_q30))
{
case RDIV_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1072;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5973, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[4];
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1072;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1072:;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_EXPF:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1073;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1073;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1073:;
}
}
}
break;
case CFN_BUILT_IN_EXP:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1074;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1074;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1074:;
}
}
}
break;
case CFN_BUILT_IN_EXPL:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1075;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1075;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1075:;
}
}
}
break;
case CFN_EXP:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1076;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1076;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1076:;
}
}
}
break;
case CFN_BUILT_IN_EXP2F:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1077;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1077;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1077:;
}
}
}
break;
case CFN_BUILT_IN_EXP2:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1078;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1078;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1078:;
}
}
}
break;
case CFN_BUILT_IN_EXP2L:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1079;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1079;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1079:;
}
}
}
break;
case CFN_EXP2:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1080;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1080;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1080:;
}
}
}
break;
case CFN_BUILT_IN_EXP10F:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1081;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1081;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1081:;
}
}
}
break;
case CFN_BUILT_IN_EXP10:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1082;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1082;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1082:;
}
}
}
break;
case CFN_BUILT_IN_EXP10L:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1083;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1083;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1083:;
}
}
}
break;
case CFN_EXP10:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1084;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1084;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1084:;
}
}
}
break;
case CFN_BUILT_IN_POW10F:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1085;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1085;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1085:;
}
}
}
break;
case CFN_BUILT_IN_POW10:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1086;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1086;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1086:;
}
}
}
break;
case CFN_BUILT_IN_POW10L:
if (call_expr_nargs (_p1) == 1)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (flag_unsafe_math_optimizations
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1087;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5979, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
if (!_r1)
goto next_after_fail1087;
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1087:;
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p0))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SINF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_TANF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_412 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COS:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_TAN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_412 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_TANL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_412 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_COS:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_COS, CFN_TAN);
if (res) return res;
}
}
}
break;
case CFN_TAN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_TAN, CFN_COS);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SINHF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSHF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_TANHF);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SINH:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSH:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH, CFN_BUILT_IN_TANH);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SINHL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_COSHL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_TANHL);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SINH:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_COSH:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, CFN_SINH, CFN_COSH, CFN_TANH);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_TANHF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINHF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHF, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_TANH:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINH:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANH, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_TANHL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINHL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHL, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_TANH:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SINH:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, CFN_TANH, CFN_SINH, CFN_COSH);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_COSF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_241 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SIN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_241 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_241 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SIN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, CFN_COS, CFN_SIN, CFN_TAN);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_TANF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_177 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SIN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_177 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SINL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_177 (loc, type, _p0, _p1, 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:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SIN:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_177 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_SIN, CFN_COS);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p0) == 2)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
tree _q21 = CALL_EXPR_ARG (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_127 (loc, type, _p0, _p1, captures, CFN_POW);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_POWF:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
if (res) return res;
}
}
break;
case CFN_BUILT_IN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
if (res) return res;
}
}
break;
case CFN_BUILT_IN_POWL:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
if (res) return res;
}
}
break;
case CFN_POW:
if (call_expr_nargs (_p1) == 2)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
{
/* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
tree res = generic_simplify_224 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
if (real_zerop (_p1))
{
{
/* #line 568 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case TRUNC_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1167 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case EXACT_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_89 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2031 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_59 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MIN_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 4630 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_19 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4765 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, PLUS_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case INTEGER_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, MINUS_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
case REAL_CST:
{
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_1 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_SQRT, LT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_157 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 5830 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_151 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_minus_onep (_q21))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 5839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REALPART_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_SUB_OVERFLOW:
if (call_expr_nargs (_q30) == 2)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 5849 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case REALPART_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_ADD_OVERFLOW:
if (call_expr_nargs (_q20) == 2)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
tree _q31 = CALL_EXPR_ARG (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_all_onesp (_q20))
{
{
/* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, CFN_CTZ);
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
if (real_zerop (_p1))
{
{
/* #line 568 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case TRUNC_MOD_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1172 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_minus_onep (_q21))
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1900 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case EXACT_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_89 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2031 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_59 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MAX_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 4620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_171 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4754 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_359 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case INTEGER_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, MINUS_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
case REAL_CST:
{
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_1 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5283 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_157 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5830 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_151 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (integer_minus_onep (_q31))
{
{
/* #line 5839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case REALPART_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_SUB_OVERFLOW:
if (call_expr_nargs (_q20) == 2)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
tree _q31 = CALL_EXPR_ARG (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 5849 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REALPART_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_ADD_OVERFLOW:
if (call_expr_nargs (_q30) == 2)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if (integer_all_onesp (_q30))
{
{
/* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_356 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
if (res) return res;
}
}
}
break;
case CFN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_FFS:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFS);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSIMAX);
if (res) return res;
}
break;
}
default:;
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
if (real_zerop (_p1))
{
{
/* #line 568 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case TRUNC_MOD_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1172 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_minus_onep (_q21))
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1900 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case EXACT_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_89 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2031 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_59 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MAX_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 4620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_171 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4765 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, PLUS_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case INTEGER_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, MINUS_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
case REAL_CST:
{
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_1 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5283 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_SQRT, GT_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_157 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5830 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_151 (loc, type, _p0, _p1, captures, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case MINUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
if (integer_minus_onep (_q31))
{
{
/* #line 5839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, LT_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case REALPART_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_SUB_OVERFLOW:
if (call_expr_nargs (_q20) == 2)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
tree _q31 = CALL_EXPR_ARG (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 5849 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REALPART_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_ADD_OVERFLOW:
if (call_expr_nargs (_q30) == 2)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if (integer_all_onesp (_q30))
{
{
/* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_356 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR, CFN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
if (res) return res;
}
}
}
break;
case CFN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_zerop (_p1))
{
{
/* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, CFN_POPCOUNT);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_FFS:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFS);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_FFSIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7337 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSIMAX);
if (res) return res;
}
break;
}
default:;
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case RDIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
if (real_zerop (_p1))
{
{
/* #line 568 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case TRUNC_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1167 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MULT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1887 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_368 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case EXACT_DIV_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EXACT_DIV_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1912 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_173 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_16 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1988 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
tree res = generic_simplify_86 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_89 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2031 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case POINTER_DIFF_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case POINTER_DIFF_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2019 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
tree res = generic_simplify_59 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
tree res = generic_simplify_361 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2058 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 2086 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_137 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_132 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MIN_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3281 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_145 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 4630 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_19 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if (integer_zerop (_p1))
{
{
/* #line 4710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4754 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_359 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_113 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 4801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_117 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case INTEGER_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4910 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, MINUS_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_269 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
case REAL_CST:
{
{
/* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_102 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EXACT_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case EXACT_DIV_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 5218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_1 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_126 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_87 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 5590 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_14 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTF:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_BUILT_IN_SQRTL:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
case CFN_SQRT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_54 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
if (res) return res;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_SQRT:
if (call_expr_nargs (_p1) == 1)
{
tree _q40 = CALL_EXPR_ARG (_p1, 0);
{
/* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
}
break;
default:;
}
break;
default:;
}
if (uniform_integer_cst_p (_p1))
{
{
/* #line 5655 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
tree res = generic_simplify_157 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q40))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 5811 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 5830 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
tree res = generic_simplify_151 (loc, type, _p0, _p1, captures, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_minus_onep (_q21))
{
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 5839 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, GE_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REALPART_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_SUB_OVERFLOW:
if (call_expr_nargs (_q30) == 2)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 5849 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case REALPART_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_ADD_OVERFLOW:
if (call_expr_nargs (_q20) == 2)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
tree _q31 = CALL_EXPR_ARG (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 5857 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
tree res = generic_simplify_28 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
case TRUNC_DIV_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_all_onesp (_q20))
{
{
/* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case REAL_CST:
{
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6825 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_366 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_CTZIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_CTZ:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 7107 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_CTZ);
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 _p0, tree _p1)
{
if (integer_zerop (_p0))
{
{
/* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_128 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
if (res) return res;
}
}
if (integer_onep (_p1))
{
{
/* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
if (res) return res;
}
}
if (integer_minus_onep (_p1))
{
{
/* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case CEIL_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 640 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 644 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_354 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
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 _p0, tree _p1)
{
if (integer_zerop (_p0))
{
{
/* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_128 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
if (res) return res;
}
}
if (integer_onep (_p1))
{
{
/* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
if (res) return res;
}
}
if (integer_minus_onep (_p1))
{
{
/* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case ROUND_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 640 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 644 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_354 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if (integer_zerop (_p0))
{
{
/* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_128 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
if (integer_onep (_p1))
{
{
/* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
if (integer_minus_onep (_p1))
{
{
/* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case TRUNC_MOD_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 640 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
break;
}
case MULT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 644 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_354 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 661 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 661 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1088;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 667, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1088:;
}
}
break;
}
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
{
/* #line 672 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
tree res = generic_simplify_243 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
{
tree _q30_pops[1];
if (tree_power_of_two_cand (_q30, _q30_pops))
{
tree _q40 = _q30_pops[0];
{
/* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
tree res = generic_simplify_162 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
{
/* #line 672 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_243 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_power_of_two_cand (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
{
/* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
tree res = generic_simplify_162 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p1))
{
case TRUNC_MOD_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q31_pops[1];
if (tree_power_of_two_cand (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
{
/* #line 712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, LSHIFT_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case FLOOR_MOD_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q31_pops[1];
if (tree_power_of_two_cand (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
{
/* #line 712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, LSHIFT_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case LT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_zerop (_q31))
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 923 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
/* #line 923 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_SIGN (TREE_TYPE (captures[0])) == SIGNED
&& wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (TREE_TYPE (captures[0])) - 1)
)
{
{
/* #line 925 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
wide_int wone = wi::one (TYPE_PRECISION (type));
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1089;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1089;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 926, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = wide_int_to_tree (type,
wi::lshift (wone, wi::to_wide (captures[2])));
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1089:;
}
}
}
break;
}
default:;
}
}
break;
}
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q30))
{
case RSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
{
{
/* #line 3344 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
/* #line 3344 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::ltu_p (wi::to_wide (captures[2]), element_precision (type))
&& INTEGRAL_TYPE_P (type)
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
&& INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[1]))
&& (TYPE_PRECISION (TREE_TYPE (captures[0])) >= TYPE_PRECISION (type)
|| wi::geu_p (wi::to_wide (captures[2]),
TYPE_PRECISION (type)
- TYPE_PRECISION (TREE_TYPE (captures[0]))))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1090;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3356, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[1];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = build_minus_one_cst (type);
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1090:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3338 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_414 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_nop_convert (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
switch (TREE_CODE (_q20))
{
case RSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 3338 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_414 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
}
}
if (integer_onep (_p0))
{
switch (TREE_CODE (_p1))
{
case MINUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case INTEGER_CST:
{
{
/* #line 911 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
/* #line 911 "/home/seti/riscv-gnu-toolchain/gcc/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 914 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1091;
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_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree _r;
_r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1091:;
}
else
{
{
/* #line 916 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1092;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 918, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[2], _r2;
{
tree _o3[1], _r3;
_o3[0] = captures[0];
if (TREE_TYPE (_o3[0]) != utype)
_r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
else
_r3 = _o3[0];
_o2[0] = _r3;
}
_o2[1] = captures[2];
_r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail1092:;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
}
if (integer_zerop (_p1))
{
{
/* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_188 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_155 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case VECTOR_CST:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
case CONSTRUCTOR:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3414 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LSHIFT_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 _p0, tree _p1)
{
switch (TREE_CODE (_p1))
{
case TRUNC_MOD_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q31_pops[1];
if (tree_power_of_two_cand (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
{
/* #line 712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, TRUNC_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
case FLOOR_MOD_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
{
tree _q31_pops[1];
if (tree_power_of_two_cand (_q31, _q31_pops))
{
tree _q50 = _q31_pops[0];
{
/* #line 712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, FLOOR_MOD_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
/* #line 934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (type)
&& TYPE_OVERFLOW_UNDEFINED (type)
)
{
{
/* #line 936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = TREE_TYPE (captures[2]);
tree bt = truth_type_for (type);
tree zeros = build_zero_cst (type);
tree INTEGER_CST = NULL_TREE;
/* #line 942 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& canonicalize_math_after_vectorization_p ()
&& wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1093;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 950, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = zeros;
_r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1093:;
}
else
{
/* #line 952 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_INTEGER_TYPE_P (type)
&& TYPE_MODE (bt) == TYPE_MODE (type)
&& expand_vec_cmp_expr_p (type, bt, GT_EXPR)
&& (INTEGER_CST = uniform_integer_cst_p (captures[2])) != NULL
&& wi::eq_p (wi::to_wide (INTEGER_CST), element_precision (type) - 1)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1094;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = zeros;
_r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1094:;
}
}
}
}
}
break;
}
case VECTOR_CST:
{
{
/* #line 934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
/* #line 934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (type)
&& TYPE_OVERFLOW_UNDEFINED (type)
)
{
{
/* #line 936 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree stype = TREE_TYPE (captures[2]);
tree bt = truth_type_for (type);
tree zeros = build_zero_cst (type);
tree VECTOR_CST = NULL_TREE;
/* #line 942 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (type)
&& canonicalize_math_after_vectorization_p ()
&& wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1095;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 950, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[1];
_o2[1] = zeros;
_r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1095:;
}
else
{
/* #line 952 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_INTEGER_TYPE_P (type)
&& TYPE_MODE (bt) == TYPE_MODE (type)
&& expand_vec_cmp_expr_p (type, bt, GT_EXPR)
&& (VECTOR_CST = uniform_integer_cst_p (captures[2])) != NULL
&& wi::eq_p (wi::to_wide (VECTOR_CST), element_precision (type) - 1)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1096;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 961, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = zeros;
_r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1096:;
}
}
}
}
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3362 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 3362 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
&& (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type)))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1097;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3364, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = build_minus_one_cst (type);
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1097:;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_all_onesp (_p0))
{
{
/* #line 3332 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 3332 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_UNSIGNED (type)
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1098;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3333, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1098:;
}
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 3369 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1099;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3369, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1099:;
}
}
if (integer_zerop (_p1))
{
{
/* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_188 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_155 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case VECTOR_CST:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
case CONSTRUCTOR:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3414 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 976 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_281 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
{
{
/* #line 976 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
tree res = generic_simplify_281 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 976 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_281 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 976 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_281 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q30))
{
case LSHIFT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if (integer_onep (_q40))
{
if (integer_minus_onep (_q31))
{
{
/* #line 981 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q41 };
/* #line 981 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1100;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1100;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 982, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = build_all_ones_cst (type);
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1100:;
}
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_onep (_q30))
{
if (integer_minus_onep (_q21))
{
{
/* #line 981 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p0, _q20, _q31 };
/* #line 981 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1101;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1101;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 982, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = build_all_ones_cst (type);
_o2[1] = captures[3];
_r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1101:;
}
}
}
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
tree res = generic_simplify_159 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
tree res = generic_simplify_159 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
tree res = generic_simplify_159 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_31 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_zerop (_q51))
{
{
/* #line 991 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
if (integer_all_onesp (_q21))
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if (integer_all_onesp (_q51))
{
{
/* #line 1000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
tree res = generic_simplify_140 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, EQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1052 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_394 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1052 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_394 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1052 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_394 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1052 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
tree res = generic_simplify_394 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q50))
{
case BIT_XOR_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q61 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q60 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q61 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50, _q60 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q71 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51, _q70 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
tree _q71 = TREE_OPERAND (_q51, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q71 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51, _q70 };
tree res = generic_simplify_407 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q30, _p0, _q20, _q31 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q21, _q31, _p0, _q20, _q30 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q71 == _q41 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q41, 0) && types_match (_q71, _q41)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q40, _p0, _q21, _q41 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q70 == _q41 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q41, 0) && types_match (_q70, _q41)))
{
if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
{
{
/* #line 1083 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q20, _q41, _p0, _q21, _q40 };
tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
tree res = generic_simplify_159 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
tree res = generic_simplify_159 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1131 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q41, _p1 };
tree res = generic_simplify_159 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
tree res = generic_simplify_31 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1154 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_364 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1154 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_364 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 1154 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
tree res = generic_simplify_364 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
if (integer_zerop (_p1))
{
{
/* #line 1188 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1102;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1188, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1102:;
}
}
if (integer_all_onesp (_p1))
{
{
/* #line 1211 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1103;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1103;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1211, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = non_lvalue_loc (loc, res_op0);
return _r;
}
next_after_fail1103:;
}
}
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 1217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_21 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q41 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
{
{
/* #line 1286 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q20, _q30 };
tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _p0 };
tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _p0 };
tree res = generic_simplify_143 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1376 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_60 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_60 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q50))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1376 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_77 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q51, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
{
/* #line 1386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
switch (TREE_CODE (_q61))
{
case BIT_NOT_EXPR:
{
tree _q80 = TREE_OPERAND (_q61, 0);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
{
/* #line 1386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_q60))
{
case BIT_NOT_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
tree res = generic_simplify_81 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_XOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
{
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
{
{
/* #line 1381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_79 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q50))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
{
/* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
tree res = generic_simplify_169 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_XOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1469 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
tree res = generic_simplify_119 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_XOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_IOR_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q31 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q30, _q30 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_q40, 0);
tree _q51 = TREE_OPERAND (_q40, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q51, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q51, _q50, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
tree _q41 = TREE_OPERAND (_p1, 1);
if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _q20 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
{
{
/* #line 1481 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
tree res = generic_simplify_147 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case BIT_AND_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
tree _q41 = TREE_OPERAND (_q30, 1);
if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q41, _q40, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q50))
{
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_q50, 0);
tree _q61 = TREE_OPERAND (_q50, 1);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q61 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q50, _q60 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q61 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _q50, _q60 };
tree res = generic_simplify_112 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q21 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _q20 };
tree res = generic_simplify_432 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q51 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q51 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20, _p1, _p1, _q50 };
tree res = generic_simplify_74 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
{
{
/* #line 1491 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q31, _q30, _p0 };
tree res = generic_simplify_61 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q60))
{
case BIT_AND_EXPR:
{
tree _q70 = TREE_OPERAND (_q60, 0);
tree _q71 = TREE_OPERAND (_q60, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q71 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _q60, _q70 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q71 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _q60, _q70 };
tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case BIT_AND_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q61 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1, _p1, _q60 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q61 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
{
{
/* #line 1501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _p1, _p1, _q60 };
tree res = generic_simplify_352 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_148 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
break;
}
case BIT_IOR_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q20))
{
case BIT_NOT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 1725 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1104;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1725, __FILE__, __LINE__);
{
if (! tree_invariant_p (captures[2])) goto next_after_fail1104;
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = unshare_expr (captures[2]);
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1104:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case BIT_IOR_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 1710 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_q30))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_q30, 0);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_q31, 0);
if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
{
{
/* #line 1715 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
tree res = generic_simplify_210 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case BIT_AND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (CONSTANT_CLASS_P (_q21))
{
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 1731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_AND_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
{
tree _p1_pops[1];
if (tree_logical_inverted_value (_p1, _p1_pops))
{
tree _q30 = _p1_pops[0];
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 1775 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_353 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
switch (TREE_CODE (_p0))
{
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 2282 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_277 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case LSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q30))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31, _p1 };
tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q40))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q40))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_q40) == 1)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_q40) == 1)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_q40) == 1)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_q40) == 1)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q40, _q50, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q30, _q31, _p1 };
tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q31, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 1775 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_353 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 2282 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_277 (loc, type, _p0, _p1, captures);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_min_value (_q51))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_165 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_max_value (_q51))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_min_value (_q51))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_165 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_max_value (_q51))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, EQ_EXPR, GT_EXPR);
if (res) return res;
}
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_165 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_max_value (_q51))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
tree res = generic_simplify_165 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_max_value (_q51))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
tree res = generic_simplify_70 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LT_EXPR, GT_EXPR);
if (res) return res;
}
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, EQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GT_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
if (tree_min_value (_q21))
{
switch (TREE_CODE (_p1))
{
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2331 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
tree res = generic_simplify_280 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2331 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
tree res = generic_simplify_280 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
if (tree_max_value (_q21))
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, EQ_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2336 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _p0 };
tree res = generic_simplify_222 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2336 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _p0 };
tree res = generic_simplify_222 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, EQ_EXPR, GT_EXPR);
if (res) return res;
}
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LT_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
if (res) return res;
}
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
if (tree_min_value (_q21))
{
switch (TREE_CODE (_p1))
{
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2379 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
/* #line 2379 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1105;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1105;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2381, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1105:;
}
}
}
break;
}
default:;
}
}
if (tree_max_value (_q21))
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q51 };
tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_min_value (_q51))
{
{
/* #line 2331 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_310 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_max_value (_q51))
{
{
/* #line 2336 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
if (res) return res;
}
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2331 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
tree res = generic_simplify_310 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if (tree_max_value (_q51))
{
{
/* #line 2336 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if (tree_min_value (_q51))
{
{
/* #line 2379 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q21, _p0, _q20 };
/* #line 2379 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
&& TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1106;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1106;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2381, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[3];
tree res_op1;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1);
_r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op1 = _r1;
}
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1106:;
}
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case EQ_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case NE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 };
tree res = generic_simplify_176 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LT_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_q50))
{
case INTEGER_CST:
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 2416 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_24 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_91 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR);
if (res) return res;
}
}
}
break;
}
case GE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
case LE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR);
if (res) return res;
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
{
/* #line 6788 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
break;
}
case LSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case INTEGER_CST:
{
if (integer_onep (_p1))
{
{
/* #line 3435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
/* #line 3435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((wi::to_wide (captures[0]) & 1) != 0
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1107;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1107;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3436, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = build_zero_cst (TREE_TYPE (captures[1]));
_r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1107:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1108;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1108;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3437, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1108:;
}
}
}
break;
}
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
tree res = generic_simplify_98 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case RSHIFT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21, _p1 };
tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_q30) == 1)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21, _p1 };
tree res = generic_simplify_98 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q20))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_q20) == 1)
{
tree _q30 = CALL_EXPR_ARG (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3984 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case ORDERED_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
{
switch (TREE_CODE (_p1))
{
case ORDERED_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q51 == _q50 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q50, 0) && types_match (_q51, _q50)))
{
{
/* #line 5242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
/* #line 5242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (types_match (captures[0], captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1109;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5243, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, ORDERED_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1109:;
}
}
}
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
{
/* #line 5249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q51 };
tree res = generic_simplify_393 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 5249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 };
tree res = generic_simplify_393 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case ORDERED_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
{
{
/* #line 5249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
tree res = generic_simplify_88 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
{
if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
{
{
/* #line 5249 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q21, _p0, _q20 };
tree res = generic_simplify_88 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
}
break;
}
default:;
}
break;
}
case MINUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6755 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_q21, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 6755 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1 };
tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p0))
{
case CFN_BUILT_IN_BSWAP16:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP32:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP64:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_BSWAP128:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 4045 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
tree res = generic_simplify_130 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
if (res) return res;
}
break;
}
default:;
}
}
break;
case CFN_BUILT_IN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_onep (_p1))
{
{
/* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNT, CFN_BUILT_IN_PARITY);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_onep (_p1))
{
{
/* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTL, CFN_BUILT_IN_PARITYL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTLL:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_onep (_p1))
{
{
/* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTLL, CFN_BUILT_IN_PARITYLL);
if (res) return res;
}
}
}
break;
case CFN_BUILT_IN_POPCOUNTIMAX:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_onep (_p1))
{
{
/* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POPCOUNTIMAX, CFN_BUILT_IN_PARITYIMAX);
if (res) return res;
}
}
}
break;
case CFN_POPCOUNT:
if (call_expr_nargs (_p0) == 1)
{
tree _q20 = CALL_EXPR_ARG (_p0, 0);
if (integer_onep (_p1))
{
{
/* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_330 (loc, type, _p0, _p1, captures, CFN_POPCOUNT, CFN_PARITY);
if (res) return res;
}
}
}
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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 3101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MAX_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3105 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_376 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3105 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_376 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MAX_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3105 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
tree res = generic_simplify_376 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3105 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
tree res = generic_simplify_376 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_107 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3120 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_107 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
/* #line 3127 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 3127 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1110;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3130, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1110:;
}
else
{
/* #line 3131 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1111;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3134, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1111:;
}
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
/* #line 3160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
/* #line 3161 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) > 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1112;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3162, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1112:;
}
else
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1113;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1113;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3163, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1113:;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
/* #line 3160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
/* #line 3161 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) > 0
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1114;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3162, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1114:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1115;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1115;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3163, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1115:;
}
}
}
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_189 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
tree res = generic_simplify_125 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 3225 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 3225 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1116;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3228, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1116:;
}
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 3235 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_110 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 3101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case MIN_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
{
{
/* #line 3109 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
tree res = generic_simplify_153 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3109 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
tree res = generic_simplify_153 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case MIN_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
{
{
/* #line 3109 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
tree res = generic_simplify_153 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3109 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
tree res = generic_simplify_153 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
case NEGATE_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 3113 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_380 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3113 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
tree res = generic_simplify_380 (loc, type, _p0, _p1, captures);
if (res) return res;
}
}
break;
}
default:;
}
{
/* #line 3138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 3138 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1117;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3141, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1117:;
}
else
{
/* #line 3142 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1118;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3145, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1118:;
}
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
{
/* #line 3151 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
/* #line 3151 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
/* #line 3152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) > 0
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1119;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1119;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3153, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1119:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1120;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3154, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1120:;
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case PLUS_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
{
/* #line 3151 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
/* #line 3151 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
)
{
/* #line 3152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_sgn (captures[2]) > 0
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1121;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1121;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3153, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1121:;
}
else
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1122;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3154, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1122:;
}
}
}
}
break;
}
default:;
}
break;
}
CASE_CONVERT:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_q20))
{
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q40 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q40))
{
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_189 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case ADDR_EXPR:
{
{
/* #line 3171 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
tree res = generic_simplify_125 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 3225 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
/* #line 3225 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1123;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3228, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1123:;
}
}
break;
}
default:;
}
break;
}
case BIT_NOT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 3235 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
tree res = generic_simplify_110 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if (integer_all_onesp (_p0))
{
{
/* #line 3327 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_105 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p1))
{
{
/* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_188 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_155 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case VECTOR_CST:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
if (res) return res;
}
break;
}
case CONSTRUCTOR:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
if (res) return res;
}
break;
}
case INTEGER_CST:
{
{
/* #line 3406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1124;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1124;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3406, __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 _r;
_r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1124:;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case LROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3414 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_301 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if (integer_all_onesp (_p0))
{
{
/* #line 3327 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_105 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p1))
{
{
/* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_188 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
if (res) return res;
}
}
if (integer_zerop (_p0))
{
{
/* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_155 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p1))
{
case VECTOR_CST:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
if (res) return res;
}
break;
}
case CONSTRUCTOR:
{
{
/* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_344 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
if (res) return res;
}
break;
}
default:;
}
switch (TREE_CODE (_p0))
{
case RROTATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
{
/* #line 3414 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, RROTATE_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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case REALPART_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case IMAGPART_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
{
{
/* #line 3919 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1125;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3919, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1125:;
}
}
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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4772 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, UNLE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, UNLE_EXPR, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, UNLE_EXPR, UNGE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNLE_EXPR, UNGE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4772 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, UNGE_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, UNGE_EXPR, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, UNGE_EXPR, UNLE_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNGE_EXPR, UNLE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4772 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, UNEQ_EXPR, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNEQ_EXPR, UNEQ_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4776 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_430 (loc, type, _p0, _p1, captures, UNLT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4776 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
tree res = generic_simplify_430 (loc, type, _p0, _p1, captures, UNGT_EXPR);
if (res) return res;
}
}
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, UNGT_EXPR, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 4779 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
/* #line 4779 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1126;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4780, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1126:;
}
}
}
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, 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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5749 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 5749 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1127;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5750, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1127:;
}
else
{
/* #line 5751 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1128;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5752, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1128:;
}
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case FLOAT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case FLOAT_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
tree res = generic_simplify_95 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
case NEGATE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q40 = TREE_OPERAND (_p1, 0);
{
/* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
tree res = generic_simplify_96 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
if (res) return res;
}
break;
}
default:;
}
if (CONSTANT_CLASS_P (_p1))
{
{
/* #line 5308 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case REAL_CST:
{
{
/* #line 5740 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
tree res = generic_simplify_372 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
if (res) return res;
}
break;
}
default:;
}
{
/* #line 5758 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 5758 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1129;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5759, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (false, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1129:;
}
else
{
/* #line 5760 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1130;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5761, __FILE__, __LINE__);
{
tree _r;
_r = constant_boolean_node (true, type);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1130:;
}
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1131;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1131;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1131;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1131;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1131;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1131;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1131;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1131;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1131:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1132;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1132;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1132;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1132;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1132;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1132;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1132;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1132;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1132:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1133;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1133;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1133;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1133;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1133;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1133;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1133;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1133;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1133:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1134;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1134;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1134;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1134;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1134;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1134;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1134;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1134;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1134:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1135;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1135;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1135;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1135;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1135;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1135;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1135;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1135;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1135:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1136;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1136;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1136;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1136;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1136;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1136;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1136;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1136;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1136:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1137;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1137;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1137;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1137;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1137;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1137;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1137;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1137;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1137:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1138;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1138;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1138;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1138;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1138;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1138;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1138;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1138;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1138:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1139;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1139;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1139;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1139;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1139;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1139;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1139;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1139;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1139:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1140;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1140;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1140;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1140;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1140;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1140;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1140;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1140;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1140:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1141;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1141;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1141;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1141;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1141;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1141;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1141;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1141;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1141:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1142;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1142;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1142;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1142;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1142;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1142;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1142;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1142;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1142:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1143;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1143;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1143;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1143;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1143;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1143;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1143;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1143;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1143:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1144;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1144;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1144;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1144;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1144;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1144;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1144;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1144;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1144:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1145;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1145;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1145;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1145;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1145;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1145;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1145;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1145;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1145:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1146;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1146;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1146;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1146;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1146;
if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1146;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1146;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1146;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1146:;
}
}
}
}
}
}
}
}
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 _p0, tree _p1)
{
switch (TREE_CODE (_p0))
{
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1147;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1147;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1147;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1147;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1147;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1147;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1147:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1148;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1148;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1148;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1148;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1148:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1149;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1149;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1149;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1149;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1149;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1149;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1149:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1150;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1150;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1150;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1150;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1150:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
case POINTER_PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
switch (TREE_CODE (_q31))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
{
if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
{
if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1151;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1151;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1151;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1151;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1151;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1151;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1151:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1152;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1152;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1152;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1152;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1152:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
{
if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1153;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1153;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1153;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1153;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1153;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1153;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1153:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1154;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1154;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1154;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1154;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1154:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1155;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1155;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1155;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1155;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1155;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1155;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1155:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1156;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1156;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1156;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1156;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1156:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
const enum tree_code cmp = LE_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1157;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1157;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1157;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1157;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1157;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1157;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1157:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1158;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1158;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1158;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1158;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1158:;
}
}
}
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case POINTER_PLUS_EXPR:
{
tree _q40 = TREE_OPERAND (_q21, 0);
tree _q41 = TREE_OPERAND (_q21, 1);
switch (TREE_CODE (_q41))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case LT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
switch (TREE_CODE (_q70))
{
case POINTER_PLUS_EXPR:
{
tree _q80 = TREE_OPERAND (_q70, 0);
tree _q81 = TREE_OPERAND (_q70, 1);
if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
{
if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
{
if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1159;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1159;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1159;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1159;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1159;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1159;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1159:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1160;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1160;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1160;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1160;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1160:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
tree _q71 = TREE_OPERAND (_p1, 1);
if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
{
switch (TREE_CODE (_q71))
{
case POINTER_PLUS_EXPR:
{
tree _q90 = TREE_OPERAND (_q71, 0);
tree _q91 = TREE_OPERAND (_q71, 1);
if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
{
if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
{
{
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
const enum tree_code cmp = LT_EXPR;
/* #line 7514 "/home/seti/riscv-gnu-toolchain/gcc/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 7518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
offset_int rhs = off * 2;
/* #line 7521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
)
{
{
/* #line 7525 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 7527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (cmp == LT_EXPR
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1161;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1161;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1161;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1161;
if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1161;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1161;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7528, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = swap_p ? captures[6] : captures[1];
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1161:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1162;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1162;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1162;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1162;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7532, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
{
tree _o3[2], _r3;
_o3[0] = swap_p ? captures[4] : captures[2];
_o3[1] = wide_int_to_tree (sizetype, off);
_r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
_o2[0] = _r3;
}
_o2[1] = swap_p ? captures[2] : captures[4];
_r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != sizetype)
_r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = rhs_tree;
tree _r;
_r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1162:;
}
}
}
}
}
}
}
}
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 _p0, tree _p1)
{
switch (code)
{
case PLUS_EXPR:
return generic_simplify_PLUS_EXPR (loc, code, type, _p0, _p1);
case POINTER_PLUS_EXPR:
return generic_simplify_POINTER_PLUS_EXPR (loc, code, type, _p0, _p1);
case MINUS_EXPR:
return generic_simplify_MINUS_EXPR (loc, code, type, _p0, _p1);
case BIT_IOR_EXPR:
return generic_simplify_BIT_IOR_EXPR (loc, code, type, _p0, _p1);
case BIT_XOR_EXPR:
return generic_simplify_BIT_XOR_EXPR (loc, code, type, _p0, _p1);
case POINTER_DIFF_EXPR:
return generic_simplify_POINTER_DIFF_EXPR (loc, code, type, _p0, _p1);
case MULT_EXPR:
return generic_simplify_MULT_EXPR (loc, code, type, _p0, _p1);
case EQ_EXPR:
return generic_simplify_EQ_EXPR (loc, code, type, _p0, _p1);
case NE_EXPR:
return generic_simplify_NE_EXPR (loc, code, type, _p0, _p1);
case TRUNC_DIV_EXPR:
return generic_simplify_TRUNC_DIV_EXPR (loc, code, type, _p0, _p1);
case CEIL_DIV_EXPR:
return generic_simplify_CEIL_DIV_EXPR (loc, code, type, _p0, _p1);
case FLOOR_DIV_EXPR:
return generic_simplify_FLOOR_DIV_EXPR (loc, code, type, _p0, _p1);
case ROUND_DIV_EXPR:
return generic_simplify_ROUND_DIV_EXPR (loc, code, type, _p0, _p1);
case EXACT_DIV_EXPR:
return generic_simplify_EXACT_DIV_EXPR (loc, code, type, _p0, _p1);
case FLOOR_MOD_EXPR:
return generic_simplify_FLOOR_MOD_EXPR (loc, code, type, _p0, _p1);
case RDIV_EXPR:
return generic_simplify_RDIV_EXPR (loc, code, type, _p0, _p1);
case LT_EXPR:
return generic_simplify_LT_EXPR (loc, code, type, _p0, _p1);
case LE_EXPR:
return generic_simplify_LE_EXPR (loc, code, type, _p0, _p1);
case GT_EXPR:
return generic_simplify_GT_EXPR (loc, code, type, _p0, _p1);
case GE_EXPR:
return generic_simplify_GE_EXPR (loc, code, type, _p0, _p1);
case CEIL_MOD_EXPR:
return generic_simplify_CEIL_MOD_EXPR (loc, code, type, _p0, _p1);
case ROUND_MOD_EXPR:
return generic_simplify_ROUND_MOD_EXPR (loc, code, type, _p0, _p1);
case TRUNC_MOD_EXPR:
return generic_simplify_TRUNC_MOD_EXPR (loc, code, type, _p0, _p1);
case LSHIFT_EXPR:
return generic_simplify_LSHIFT_EXPR (loc, code, type, _p0, _p1);
case RSHIFT_EXPR:
return generic_simplify_RSHIFT_EXPR (loc, code, type, _p0, _p1);
case BIT_AND_EXPR:
return generic_simplify_BIT_AND_EXPR (loc, code, type, _p0, _p1);
case MIN_EXPR:
return generic_simplify_MIN_EXPR (loc, code, type, _p0, _p1);
case MAX_EXPR:
return generic_simplify_MAX_EXPR (loc, code, type, _p0, _p1);
case LROTATE_EXPR:
return generic_simplify_LROTATE_EXPR (loc, code, type, _p0, _p1);
case RROTATE_EXPR:
return generic_simplify_RROTATE_EXPR (loc, code, type, _p0, _p1);
case COMPLEX_EXPR:
return generic_simplify_COMPLEX_EXPR (loc, code, type, _p0, _p1);
case UNLE_EXPR:
return generic_simplify_UNLE_EXPR (loc, code, type, _p0, _p1);
case UNGE_EXPR:
return generic_simplify_UNGE_EXPR (loc, code, type, _p0, _p1);
case UNEQ_EXPR:
return generic_simplify_UNEQ_EXPR (loc, code, type, _p0, _p1);
case UNLT_EXPR:
return generic_simplify_UNLT_EXPR (loc, code, type, _p0, _p1);
case UNGT_EXPR:
return generic_simplify_UNGT_EXPR (loc, code, type, _p0, _p1);
case LTGT_EXPR:
return generic_simplify_LTGT_EXPR (loc, code, type, _p0, _p1);
case UNORDERED_EXPR:
return generic_simplify_UNORDERED_EXPR (loc, code, type, _p0, _p1);
case ORDERED_EXPR:
return generic_simplify_ORDERED_EXPR (loc, code, type, _p0, _p1);
case TRUTH_ORIF_EXPR:
return generic_simplify_TRUTH_ORIF_EXPR (loc, code, type, _p0, _p1);
case TRUTH_OR_EXPR:
return generic_simplify_TRUTH_OR_EXPR (loc, code, type, _p0, _p1);
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 _p0, tree _p1, tree _p2)
{
switch (TREE_CODE (_p0))
{
case INTEGER_CST:
{
{
/* #line 4070 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
/* #line 4070 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[0])
)
{
/* #line 4071 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1163;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1163;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1163;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4072, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1163:;
}
}
else
{
/* #line 4073 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type)
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1164;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1164;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1164;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4074, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1164:;
}
}
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LT_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, LE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, LE_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GT_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GT_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q20))
{
case PLUS_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_onep (_q31))
{
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q70 = TREE_OPERAND (_p1, 0);
if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
{
if (integer_onep (_p2))
{
{
/* #line 4482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
/* #line 4482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1165;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1165;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1165;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4483, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = unshare_expr (captures[0]);
_o1[1] = captures[1];
_r1 = fold_build2_loc (loc, GE_EXPR, boolean_type_node, _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op1 = _r1;
}
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1165:;
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q60 = TREE_OPERAND (_p1, 0);
tree _q61 = TREE_OPERAND (_p1, 1);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_q61))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q21, _q61, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
switch (TREE_CODE (_p1))
{
case PLUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, PLUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
case MINUS_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
tree _q51 = TREE_OPERAND (_p1, 1);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_q51))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4384 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _p2 };
tree res = generic_simplify_257 (loc, type, _p0, _p1, _p2, captures, GE_EXPR, MINUS_EXPR);
if (res) return res;
}
break;
}
default:;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q20))
{
CASE_CONVERT:
{
tree _q30 = TREE_OPERAND (_q20, 0);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q60 = TREE_OPERAND (_p1, 0);
if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
CASE_CONVERT:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p2 };
tree res = generic_simplify_158 (loc, type, _p0, _p1, _p2, captures, EQ_EXPR);
if (res) return res;
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
switch (TREE_CODE (_q21))
{
case INTEGER_CST:
{
switch (TREE_CODE (_p1))
{
case NEGATE_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4466 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
/* #line 4466 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!TYPE_SATURATING (type)
&& (TYPE_OVERFLOW_WRAPS (type)
|| !wi::only_sign_bit_p (wi::to_wide (captures[1])))
&& wi::eq_p (wi::neg (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1166;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1166;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1166;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4470, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1166:;
}
}
break;
}
default:;
}
}
break;
}
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
{
switch (TREE_CODE (_p2))
{
case INTEGER_CST:
{
{
/* #line 4475 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _p1, _p2 };
/* #line 4475 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (wi::eq_p (wi::bit_not (wi::to_wide (captures[1])), wi::to_wide (captures[3]))
)
{
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1167;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1167;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1167;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4476, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1167:;
}
}
break;
}
default:;
}
}
break;
}
default:;
}
break;
}
default:;
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 4489 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1168;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1168;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1168;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1168;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1168;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4489, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1168:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p2))
{
case COND_EXPR:
{
tree _q40 = TREE_OPERAND (_p2, 0);
tree _q41 = TREE_OPERAND (_p2, 1);
tree _q42 = TREE_OPERAND (_p2, 2);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 4492 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1169;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1169;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1169;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1169;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1169;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4492, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1169:;
}
}
{
/* #line 4500 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
/* #line 4500 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse_conditions_p (captures[0], captures[2])
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1170;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1170;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1170;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1170;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1170;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4501, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1170:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
{
/* #line 4504 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
/* #line 4504 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse_conditions_p (captures[0], captures[1])
)
{
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1171;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1171;
if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1171;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1171;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1171;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4505, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1171:;
}
}
break;
}
default:;
}
if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
{
{
/* #line 4510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1172;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1172;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4510, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1172:;
}
}
switch (TREE_CODE (_p0))
{
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = EQ_EXPR;
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1173;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1173;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1173;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4537, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1173:;
}
}
}
break;
}
default:;
}
}
if (integer_zerop (_p1))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = EQ_EXPR;
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1174;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1174;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1174;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1174;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4541, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1174:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case UNEQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = UNEQ_EXPR;
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1175;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1175;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1175;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4537, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1175:;
}
}
}
break;
}
default:;
}
}
if (integer_zerop (_p1))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = UNEQ_EXPR;
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1176;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1176;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1176;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1176;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4541, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1176:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = NE_EXPR;
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1177;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1177;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4548, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1177:;
}
}
}
break;
}
default:;
}
if (integer_zerop (_p2))
{
{
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = NE_EXPR;
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1178;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1178;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1178;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4552, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1178:;
}
}
}
}
}
switch (TREE_CODE (_q20))
{
case BIT_AND_EXPR:
{
tree _q30 = TREE_OPERAND (_q20, 0);
tree _q31 = TREE_OPERAND (_q20, 1);
if (integer_pow2p (_q31))
{
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
if (integer_zerop (_p2))
{
{
/* #line 5539 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
/* #line 5539 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!POINTER_TYPE_P (type) && integer_pow2p (captures[2])
)
{
{
/* #line 5540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int shift = (wi::exact_log2 (wi::to_wide (captures[2]))
- wi::exact_log2 (wi::to_wide (captures[1])));
/* #line 5544 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (shift > 0
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1179;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1179;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1179;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1179;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5545, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
if (TREE_TYPE (_o2[0]) != type)
_r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
else
_r2 = _o2[0];
_o1[0] = _r2;
}
_o1[1] = build_int_cst (integer_type_node, shift);
_r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1179:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1180;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1180;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1180;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1180;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5547, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
_o2[1] = build_int_cst (integer_type_node, -shift);
_r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[2];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1180:;
}
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
break;
}
case LTGT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LTGT_EXPR;
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1181;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1181;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4548, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1181:;
}
}
}
break;
}
default:;
}
if (integer_zerop (_p2))
{
{
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LTGT_EXPR;
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1182;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1182;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1182;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4552, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1182:;
}
}
}
}
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = GE_EXPR;
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1183;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1183;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4560, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail1183:;
}
}
}
break;
}
default:;
}
}
}
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
{
{
/* #line 5506 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_199 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p2))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
{
{
/* #line 5521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_146 (loc, type, _p0, _p1, _p2, captures, GE_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = GT_EXPR;
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1184;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1184;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4560, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail1184:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LE_EXPR;
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
/* #line 4567 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (type)
&& !TYPE_OVERFLOW_WRAPS (type)
)
{
{
/* #line 4569 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1185;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1185;
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;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail1185:;
}
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1186;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1186;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4573, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1186:;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LT_EXPR;
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
/* #line 4567 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (type)
&& !TYPE_OVERFLOW_WRAPS (type)
)
{
{
/* #line 4569 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1187;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1187;
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;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail1187:;
}
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1188;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1188;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4573, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1188:;
}
}
}
}
break;
}
default:;
}
}
}
if (integer_zerop (_q21))
{
switch (TREE_CODE (_p1))
{
case BIT_NOT_EXPR:
{
tree _q50 = TREE_OPERAND (_p1, 0);
if ((_p2 == _q50 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q50, 0) && types_match (_p2, _q50)))
{
{
/* #line 5506 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
tree res = generic_simplify_199 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p2))
{
case BIT_NOT_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _p1 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p1, 0) && types_match (_q60, _p1)))
{
{
/* #line 5521 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
tree res = generic_simplify_146 (loc, type, _p0, _p1, _p2, captures, LT_EXPR);
if (res) return res;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case INTEGER_CST:
{
if (integer_zerop (_p2))
{
{
/* #line 5570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
/* #line 5570 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_pow2p (captures[1])
&& !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
)
{
{
/* #line 5572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
/* #line 5575 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (shift >= 0
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1189;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1189;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1189;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1189;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5576, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
{
tree _o2[2], _r2;
_o2[0] = captures[0];
_o2[1] = build_int_cst (integer_type_node, shift);
_r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
_o1[0] = _r2;
}
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1189:;
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1190;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1190;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1190;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1190;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5581, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
if (TREE_TYPE (_o1[0]) != type)
_r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
else
_r1 = _o1[0];
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree _r;
_r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
return _r;
}
next_after_fail1190:;
}
}
}
}
}
break;
}
default:;
}
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if (tree_truth_valued_p (_q20))
{
{
/* #line 4515 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1191;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1191;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1191;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4515, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = captures[1];
tree _r;
_r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1191:;
}
}
}
}
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 _p0, tree _p1, tree _p2)
{
switch (TREE_CODE (_p0))
{
case VECTOR_CST:
{
{
/* #line 4077 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
/* #line 4077 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_all_onesp (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1192;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4078, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1192:;
}
else
{
/* #line 4079 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[0])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1193;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4080, __FILE__, __LINE__);
{
tree _r;
_r = captures[2];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1193:;
}
}
}
break;
}
case VEC_COND_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
if (integer_zerop (_q22))
{
{
/* #line 4190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _p2 };
/* #line 4190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[1], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1194;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1194;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4191, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1194:;
}
}
}
if (integer_all_onesp (_q21))
{
{
/* #line 4194 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q22, _p1, _p2 };
/* #line 4194 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[1], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1195;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1195;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4195, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1195:;
}
}
}
if (integer_zerop (_q21))
{
{
/* #line 4198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q22, _p1, _p2 };
/* #line 4198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[1], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1196;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1196;
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;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1196:;
}
}
}
if (integer_all_onesp (_q22))
{
{
/* #line 4202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _p2 };
/* #line 4202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[1], captures[2])
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1197;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1197;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4203, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[1];
{
tree _o2[1], _r2;
_o2[0] = captures[2];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[1] = _r2;
}
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1197:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
if ((_p2 == _q32 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q32, 0) && types_match (_p2, _q32)))
{
{
/* #line 4208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
/* #line 4208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[0], captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1198;
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 _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1198:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p2))
{
case VEC_COND_EXPR:
{
tree _q40 = TREE_OPERAND (_p2, 0);
tree _q41 = TREE_OPERAND (_p2, 1);
tree _q42 = TREE_OPERAND (_p2, 2);
if ((_q41 == _p1 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p1, 0) && types_match (_q41, _p1)))
{
{
/* #line 4212 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q42 };
/* #line 4212 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[0], captures[3])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1199;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4213, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
_o1[0] = captures[0];
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1199:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
if ((_p2 == _q31 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _q31, 0) && types_match (_p2, _q31)))
{
{
/* #line 4216 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
/* #line 4216 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[0], captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1200;
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 _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[2];
_r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1200:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p2))
{
case VEC_COND_EXPR:
{
tree _q40 = TREE_OPERAND (_p2, 0);
tree _q41 = TREE_OPERAND (_p2, 1);
tree _q42 = TREE_OPERAND (_p2, 2);
if ((_q42 == _p1 && ! TREE_SIDE_EFFECTS (_q42)) || (operand_equal_p (_q42, _p1, 0) && types_match (_q42, _p1)))
{
{
/* #line 4220 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 };
/* #line 4220 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (optimize_vectors_before_lowering_p () && types_match (captures[0], captures[3])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1201;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4221, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[2], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
_o1[0] = _r2;
}
_o1[1] = captures[3];
_r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
res_op0 = _r1;
}
tree res_op1;
res_op1 = captures[4];
tree res_op2;
res_op2 = captures[1];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1201:;
}
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case VECTOR_CST:
{
switch (TREE_CODE (_p2))
{
case VECTOR_CST:
{
{
/* #line 4227 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
/* #line 4227 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_BOOLEAN_TYPE_P (type)
&& types_match (type, TREE_TYPE (captures[0]))
)
{
/* #line 4229 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[1]) && integer_all_onesp (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1202;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4230, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1202:;
}
else
{
/* #line 4231 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_all_onesp (captures[1]) && integer_zerop (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1203;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1203:;
}
}
}
}
break;
}
default:;
}
break;
}
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 4489 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _p2 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1204;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4489, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1204:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p2))
{
case VEC_COND_EXPR:
{
tree _q40 = TREE_OPERAND (_p2, 0);
tree _q41 = TREE_OPERAND (_p2, 1);
tree _q42 = TREE_OPERAND (_p2, 2);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 4492 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q41, _q42 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1205;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4492, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1205:;
}
}
{
/* #line 4500 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42 };
/* #line 4500 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse_conditions_p (captures[0], captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1206;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4501, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[3];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
if (TREE_SIDE_EFFECTS (captures[4]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
return _r;
}
next_after_fail1206:;
}
}
break;
}
default:;
}
switch (TREE_CODE (_p1))
{
case VEC_COND_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
tree _q31 = TREE_OPERAND (_p1, 1);
tree _q32 = TREE_OPERAND (_p1, 2);
{
/* #line 4504 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q32, _p2 };
/* #line 4504 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (inverse_conditions_p (captures[0], captures[1])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1207;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4505, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1207:;
}
}
break;
}
default:;
}
if ((_p2 == _p1 && ! TREE_SIDE_EFFECTS (_p2)) || (operand_equal_p (_p2, _p1, 0) && types_match (_p2, _p1)))
{
{
/* #line 4510 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1208;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4510, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1208:;
}
}
switch (TREE_CODE (_p0))
{
case EQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = EQ_EXPR;
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1209;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1209;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1209;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4537, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1209:;
}
}
}
break;
}
default:;
}
}
if (integer_zerop (_p1))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = EQ_EXPR;
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1210;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1210;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1210;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1210;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4541, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1210:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case UNEQ_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = UNEQ_EXPR;
/* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1211;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1211;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1211;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4537, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1211:;
}
}
}
break;
}
default:;
}
}
if (integer_zerop (_p1))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p2 };
const enum tree_code cmp = UNEQ_EXPR;
/* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1212;
if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1212;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1212;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1212;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4541, __FILE__, __LINE__);
{
tree _r;
_r = captures[1];
return _r;
}
next_after_fail1212:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case NE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = NE_EXPR;
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1213;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1213;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4548, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1213:;
}
}
}
break;
}
default:;
}
if (integer_zerop (_p2))
{
{
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = NE_EXPR;
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1214;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1214;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1214;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4552, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1214:;
}
}
}
}
}
break;
}
case LTGT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LTGT_EXPR;
/* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1215;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1215;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4548, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1215:;
}
}
}
break;
}
default:;
}
if (integer_zerop (_p2))
{
{
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LTGT_EXPR;
/* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1216;
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1216;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1216;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4552, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
return _r;
}
next_after_fail1216:;
}
}
}
}
}
break;
}
case GE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = GE_EXPR;
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1217;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1217;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4560, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail1217:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case GT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = GT_EXPR;
/* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1218;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1218;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4560, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
return _r;
}
next_after_fail1218:;
}
}
}
break;
}
default:;
}
}
}
break;
}
case LE_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LE_EXPR;
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
/* #line 4567 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (type)
&& !TYPE_OVERFLOW_WRAPS (type)
)
{
{
/* #line 4569 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1219;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1219;
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;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail1219:;
}
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1220;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1220;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4573, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1220:;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
case LT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
if (zerop (_q21))
{
if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
{
switch (TREE_CODE (_p2))
{
case NEGATE_EXPR:
{
tree _q60 = TREE_OPERAND (_p2, 0);
if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
{
{
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
const enum tree_code cmp = LT_EXPR;
/* #line 4565 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!HONOR_SIGNED_ZEROS (type)
&& !TYPE_UNSIGNED (type)
)
{
/* #line 4567 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ANY_INTEGRAL_TYPE_P (type)
&& !TYPE_OVERFLOW_WRAPS (type)
)
{
{
/* #line 4569 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree utype = unsigned_type_for (type);
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1221;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1221;
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;
{
tree _o1[1], _r1;
{
tree _o2[1], _r2;
_o2[0] = captures[0];
_r2 = fold_build1_loc (loc, ABSU_EXPR, utype, _o2[0]);
_o1[0] = _r2;
}
_r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
return _r;
}
next_after_fail1221:;
}
}
else
{
if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1222;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1222;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4573, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
return _r;
}
next_after_fail1222:;
}
}
}
}
break;
}
default:;
}
}
}
break;
}
default:;
}
{
tree _p0_pops[1];
if (tree_logical_inverted_value (_p0, _p0_pops))
{
tree _q20 = _p0_pops[0];
if (tree_truth_valued_p (_q20))
{
{
/* #line 4515 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1223;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4515, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[2];
tree res_op2;
res_op2 = captures[1];
tree _r;
_r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1223:;
}
}
}
}
switch (TREE_CODE (_p1))
{
case VIEW_CONVERT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_COND_ADD:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
if (res) return res;
}
}
}
break;
case CFN_COND_SUB:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
if (res) return res;
}
}
}
break;
case CFN_COND_MUL:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
if (res) return res;
}
}
}
break;
case CFN_COND_DIV:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
if (res) return res;
}
}
}
break;
case CFN_COND_MOD:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
if (res) return res;
}
}
}
break;
case CFN_COND_RDIV:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
if (res) return res;
}
}
}
break;
case CFN_COND_MIN:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
if (res) return res;
}
}
}
break;
case CFN_COND_MAX:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
if (res) return res;
}
}
}
break;
case CFN_COND_FMIN:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
if (res) return res;
}
}
}
break;
case CFN_COND_FMAX:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
if (res) return res;
}
}
}
break;
case CFN_COND_AND:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
if (res) return res;
}
}
}
break;
case CFN_COND_IOR:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
if (res) return res;
}
}
}
break;
case CFN_COND_XOR:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
if (res) return res;
}
}
}
break;
case CFN_COND_SHL:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
if (res) return res;
}
}
}
break;
case CFN_COND_SHR:
if (call_expr_nargs (_q30) == 4)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_COND_ADD:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
if (res) return res;
}
}
}
break;
case CFN_COND_SUB:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
if (res) return res;
}
}
}
break;
case CFN_COND_MUL:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
if (res) return res;
}
}
}
break;
case CFN_COND_DIV:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
if (res) return res;
}
}
}
break;
case CFN_COND_MOD:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
if (res) return res;
}
}
}
break;
case CFN_COND_RDIV:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
if (res) return res;
}
}
}
break;
case CFN_COND_MIN:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
if (res) return res;
}
}
}
break;
case CFN_COND_MAX:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
if (res) return res;
}
}
}
break;
case CFN_COND_FMIN:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
if (res) return res;
}
}
}
break;
case CFN_COND_FMAX:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
if (res) return res;
}
}
}
break;
case CFN_COND_AND:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
if (res) return res;
}
}
}
break;
case CFN_COND_IOR:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
if (res) return res;
}
}
}
break;
case CFN_COND_XOR:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
if (res) return res;
}
}
}
break;
case CFN_COND_SHL:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
if (res) return res;
}
}
}
break;
case CFN_COND_SHR:
if (call_expr_nargs (_p1) == 4)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7443 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _p2 };
tree res = generic_simplify_336 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p2))
{
case VIEW_CONVERT_EXPR:
{
tree _q40 = TREE_OPERAND (_p2, 0);
switch (TREE_CODE (_q40))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q40))
{
case CFN_COND_ADD:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
if (res) return res;
}
}
break;
case CFN_COND_SUB:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
if (res) return res;
}
}
break;
case CFN_COND_MUL:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
if (res) return res;
}
}
break;
case CFN_COND_DIV:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
if (res) return res;
}
}
break;
case CFN_COND_MOD:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
if (res) return res;
}
}
break;
case CFN_COND_RDIV:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
if (res) return res;
}
}
break;
case CFN_COND_MIN:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
if (res) return res;
}
}
break;
case CFN_COND_MAX:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
if (res) return res;
}
}
break;
case CFN_COND_FMIN:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
if (res) return res;
}
}
break;
case CFN_COND_FMAX:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
if (res) return res;
}
}
break;
case CFN_COND_AND:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
if (res) return res;
}
}
break;
case CFN_COND_IOR:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
if (res) return res;
}
}
break;
case CFN_COND_XOR:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
if (res) return res;
}
}
break;
case CFN_COND_SHL:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
if (res) return res;
}
}
break;
case CFN_COND_SHR:
if (call_expr_nargs (_q40) == 4)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p2))
{
case CFN_COND_ADD:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_ADD);
if (res) return res;
}
}
break;
case CFN_COND_SUB:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SUB);
if (res) return res;
}
}
break;
case CFN_COND_MUL:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MUL);
if (res) return res;
}
}
break;
case CFN_COND_DIV:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_DIV);
if (res) return res;
}
}
break;
case CFN_COND_MOD:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MOD);
if (res) return res;
}
}
break;
case CFN_COND_RDIV:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_RDIV);
if (res) return res;
}
}
break;
case CFN_COND_MIN:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MIN);
if (res) return res;
}
}
break;
case CFN_COND_MAX:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_MAX);
if (res) return res;
}
}
break;
case CFN_COND_FMIN:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMIN);
if (res) return res;
}
}
break;
case CFN_COND_FMAX:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMAX);
if (res) return res;
}
}
break;
case CFN_COND_AND:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_AND);
if (res) return res;
}
}
break;
case CFN_COND_IOR:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_IOR);
if (res) return res;
}
}
break;
case CFN_COND_XOR:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_XOR);
if (res) return res;
}
}
break;
case CFN_COND_SHL:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHL);
if (res) return res;
}
}
break;
case CFN_COND_SHR:
if (call_expr_nargs (_p2) == 4)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
{
/* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 };
tree res = generic_simplify_417 (loc, type, _p0, _p1, _p2, captures, CFN_COND_SHR);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p1))
{
case VIEW_CONVERT_EXPR:
{
tree _q30 = TREE_OPERAND (_p1, 0);
switch (TREE_CODE (_q30))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q30))
{
case CFN_COND_FMA:
if (call_expr_nargs (_q30) == 5)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
tree _q44 = CALL_EXPR_ARG (_q30, 4);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
if (res) return res;
}
}
}
break;
case CFN_COND_FMS:
if (call_expr_nargs (_q30) == 5)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
tree _q44 = CALL_EXPR_ARG (_q30, 4);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
if (res) return res;
}
}
}
break;
case CFN_COND_FNMA:
if (call_expr_nargs (_q30) == 5)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
tree _q44 = CALL_EXPR_ARG (_q30, 4);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
if (res) return res;
}
}
}
break;
case CFN_COND_FNMS:
if (call_expr_nargs (_q30) == 5)
{
tree _q40 = CALL_EXPR_ARG (_q30, 0);
tree _q41 = CALL_EXPR_ARG (_q30, 1);
tree _q42 = CALL_EXPR_ARG (_q30, 2);
tree _q43 = CALL_EXPR_ARG (_q30, 3);
tree _q44 = CALL_EXPR_ARG (_q30, 4);
if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q42, _q43, _q44, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p1))
{
case CFN_COND_FMA:
if (call_expr_nargs (_p1) == 5)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
tree _q34 = CALL_EXPR_ARG (_p1, 4);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
if (res) return res;
}
}
}
break;
case CFN_COND_FMS:
if (call_expr_nargs (_p1) == 5)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
tree _q34 = CALL_EXPR_ARG (_p1, 4);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
if (res) return res;
}
}
}
break;
case CFN_COND_FNMA:
if (call_expr_nargs (_p1) == 5)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
tree _q34 = CALL_EXPR_ARG (_p1, 4);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
if (res) return res;
}
}
}
break;
case CFN_COND_FNMS:
if (call_expr_nargs (_p1) == 5)
{
tree _q30 = CALL_EXPR_ARG (_p1, 0);
tree _q31 = CALL_EXPR_ARG (_p1, 1);
tree _q32 = CALL_EXPR_ARG (_p1, 2);
tree _q33 = CALL_EXPR_ARG (_p1, 3);
tree _q34 = CALL_EXPR_ARG (_p1, 4);
if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
{
{
/* #line 7457 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q31, _q32, _q33, _q34, _p2 };
tree res = generic_simplify_214 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
if (res) return res;
}
}
}
break;
default:;
}
break;
default:;
}
switch (TREE_CODE (_p2))
{
case VIEW_CONVERT_EXPR:
{
tree _q40 = TREE_OPERAND (_p2, 0);
switch (TREE_CODE (_q40))
{
case CALL_EXPR:
switch (get_call_combined_fn (_q40))
{
case CFN_COND_FMA:
if (call_expr_nargs (_q40) == 5)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
tree _q54 = CALL_EXPR_ARG (_q40, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
if (res) return res;
}
}
break;
case CFN_COND_FMS:
if (call_expr_nargs (_q40) == 5)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
tree _q54 = CALL_EXPR_ARG (_q40, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
if (res) return res;
}
}
break;
case CFN_COND_FNMA:
if (call_expr_nargs (_q40) == 5)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
tree _q54 = CALL_EXPR_ARG (_q40, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
if (res) return res;
}
}
break;
case CFN_COND_FNMS:
if (call_expr_nargs (_q40) == 5)
{
tree _q50 = CALL_EXPR_ARG (_q40, 0);
tree _q51 = CALL_EXPR_ARG (_q40, 1);
tree _q52 = CALL_EXPR_ARG (_q40, 2);
tree _q53 = CALL_EXPR_ARG (_q40, 3);
tree _q54 = CALL_EXPR_ARG (_q40, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMS);
if (res) return res;
}
}
break;
default:;
}
break;
default:;
}
break;
}
case CALL_EXPR:
switch (get_call_combined_fn (_p2))
{
case CFN_COND_FMA:
if (call_expr_nargs (_p2) == 5)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
tree _q44 = CALL_EXPR_ARG (_p2, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMA);
if (res) return res;
}
}
break;
case CFN_COND_FMS:
if (call_expr_nargs (_p2) == 5)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
tree _q44 = CALL_EXPR_ARG (_p2, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FMS);
if (res) return res;
}
}
break;
case CFN_COND_FNMA:
if (call_expr_nargs (_p2) == 5)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
tree _q44 = CALL_EXPR_ARG (_p2, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, captures, CFN_COND_FNMA);
if (res) return res;
}
}
break;
case CFN_COND_FNMS:
if (call_expr_nargs (_p2) == 5)
{
tree _q40 = CALL_EXPR_ARG (_p2, 0);
tree _q41 = CALL_EXPR_ARG (_p2, 1);
tree _q42 = CALL_EXPR_ARG (_p2, 2);
tree _q43 = CALL_EXPR_ARG (_p2, 3);
tree _q44 = CALL_EXPR_ARG (_p2, 4);
{
/* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 };
tree res = generic_simplify_358 (loc, type, _p0, _p1, _p2, 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 _p0, tree _p1, tree _p2)
{
switch (TREE_CODE (_p0))
{
case BIT_FIELD_REF:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
{
/* #line 6854 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1224;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1224;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1224;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6854, __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 _r;
_r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1224:;
}
break;
}
case VIEW_CONVERT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
{
/* #line 6858 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1225;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6858, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[1];
tree res_op2;
res_op2 = captures[2];
tree _r;
_r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1225:;
}
break;
}
default:;
}
if (integer_zerop (_p2))
{
{
/* #line 6862 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
/* #line 6862 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
)
{
if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1226;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1226;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6863, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1226:;
}
}
}
{
/* #line 6868 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
/* #line 6868 "/home/seti/riscv-gnu-toolchain/gcc/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 6871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (integer_zerop (captures[2])
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1227;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6872, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1227:;
}
else
{
/* #line 6873 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
)
{
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1228;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6874, __FILE__, __LINE__);
{
tree res_op0;
{
tree _o1[1], _r1;
_o1[0] = captures[0];
_r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
res_op0 = _r1;
}
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1228:;
}
}
}
else
{
/* #line 6875 "/home/seti/riscv-gnu-toolchain/gcc/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
&& canonicalize_math_after_vectorization_p ()
&& 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 (!dbg_cnt (match), 0)) goto next_after_fail1229;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6894, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree _r;
_r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1229:;
}
}
}
switch (TREE_CODE (_p0))
{
case CONSTRUCTOR:
{
{
/* #line 6900 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
/* #line 6900 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
&& tree_fits_uhwi_p (TYPE_SIZE (type))
&& ((tree_to_uhwi (TYPE_SIZE (type))
== tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
|| (VECTOR_TYPE_P (type)
&& (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
== tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
)
{
{
/* #line 6907 "/home/seti/riscv-gnu-toolchain/gcc/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 6916 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (n != 0
&& (idx % width) == 0
&& (n % width) == 0
&& known_le ((idx + n) / width,
TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
)
{
{
/* #line 6921 "/home/seti/riscv-gnu-toolchain/gcc/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 6937 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
)
{
/* #line 6938 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (CONSTRUCTOR_NELTS (ctor) == 0
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1230;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1230;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1230;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1230;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6939, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
return _r;
}
next_after_fail1230:;
}
else
{
/* #line 6940 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (count == 1
)
{
/* #line 6941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (elt < CONSTRUCTOR_NELTS (ctor)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1231;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1231;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1231;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1231;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6942, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = CONSTRUCTOR_ELT (ctor, elt)->value;
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail1231:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1232;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1232;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1232;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1232;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6943, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
return _r;
}
next_after_fail1232:;
}
}
else
{
/* #line 6947 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (single_use (captures[0])
)
{
{
/* #line 6948 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
vec<constructor_elt, va_gc> *vals;
vec_alloc (vals, count);
bool constant_p = true;
tree res;
for (unsigned i = 0;
i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
{
tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
if (!CONSTANT_CLASS_P (e))
constant_p = false;
}
tree evtype = (types_match (TREE_TYPE (type),
TREE_TYPE (TREE_TYPE (ctor)))
? type
: build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
count * k));
res = (constant_p ? build_vector_from_ctor (evtype, vals)
: build_constructor (evtype, vals));
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1233;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1233;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1233;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1233;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6970, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = res;
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail1233:;
}
}
}
}
}
else
{
/* #line 6972 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (k.is_constant (&const_k)
&& idx + n <= (idx / const_k + 1) * const_k
)
{
/* #line 6975 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1234;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1234;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1234;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1234;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6976, __FILE__, __LINE__);
{
tree _r;
_r = build_zero_cst (type);
return _r;
}
next_after_fail1234:;
}
else
{
/* #line 6977 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (n == const_k
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1235;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1235;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1235;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1235;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6978, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
tree _r;
_r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
return _r;
}
next_after_fail1235:;
}
else
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1236;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1236;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1236;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1236;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6979, __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 _r;
_r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1236:;
}
}
}
}
}
}
}
}
}
break;
}
case BIT_INSERT_EXPR:
{
tree _q20 = TREE_OPERAND (_p0, 0);
tree _q21 = TREE_OPERAND (_p0, 1);
tree _q22 = TREE_OPERAND (_p0, 2);
{
/* #line 6987 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
{
/* #line 6987 "/home/seti/riscv-gnu-toolchain/gcc/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 6996 "/home/seti/riscv-gnu-toolchain/gcc/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])) goto next_after_fail1237;
if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1237;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1237;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6999, __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 _r;
_r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[0]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
return _r;
}
next_after_fail1237:;
}
else
{
/* #line 7002 "/home/seti/riscv-gnu-toolchain/gcc/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 (!dbg_cnt (match), 0)) goto next_after_fail1238;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7006, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = captures[0];
tree res_op1;
res_op1 = captures[3];
tree res_op2;
res_op2 = captures[4];
tree _r;
_r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
if (TREE_SIDE_EFFECTS (captures[2]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
return _r;
}
next_after_fail1238:;
}
}
}
}
break;
}
default:;
}
return NULL_TREE;
}
static tree
generic_simplify_VEC_PERM_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
{
switch (TREE_CODE (_p2))
{
case VECTOR_CST:
{
{
/* #line 7575 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
{
/* #line 7575 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree op0 = captures[0], op1 = captures[1], op2 = captures[2];
vec_perm_builder builder;
if (!tree_to_vec_perm_builder (&builder, op2))
return NULL_TREE;
poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
bool single_arg = (op0 == op1);
vec_perm_indices sel (builder, single_arg ? 1 : 2, nelts);
/* #line 7589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (sel.series_p (0, 1, 0, 1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1239;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1239;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1239;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1239;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7590, __FILE__, __LINE__);
{
tree _r;
_r = op0;
return _r;
}
next_after_fail1239:;
}
else
{
/* #line 7591 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (sel.series_p (0, 1, nelts, 1)
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1240;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1240;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1240;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1240;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7592, __FILE__, __LINE__);
{
tree _r;
_r = op1;
return _r;
}
next_after_fail1240:;
}
else
{
{
/* #line 7593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (!single_arg)
{
if (sel.all_from_input_p (0))
op1 = op0;
else if (sel.all_from_input_p (1))
{
op0 = op1;
sel.rotate_inputs (1);
}
else if (known_ge (poly_uint64 (sel[0]), nelts))
{
std::swap (op0, op1);
sel.rotate_inputs (1);
}
}
gassign *def;
tree cop0 = op0, cop1 = op1;
if (TREE_CODE (op0) == SSA_NAME
&& (def = dyn_cast <gassign *> (SSA_NAME_DEF_STMT (op0)))
&& gimple_assign_rhs_code (def) == CONSTRUCTOR)
cop0 = gimple_assign_rhs1 (def);
if (TREE_CODE (op1) == SSA_NAME
&& (def = dyn_cast <gassign *> (SSA_NAME_DEF_STMT (op1)))
&& gimple_assign_rhs_code (def) == CONSTRUCTOR)
cop1 = gimple_assign_rhs1 (def);
tree t;
/* #line 7623 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if ((TREE_CODE (cop0) == VECTOR_CST
|| TREE_CODE (cop0) == CONSTRUCTOR)
&& (TREE_CODE (cop1) == VECTOR_CST
|| TREE_CODE (cop1) == CONSTRUCTOR)
&& (t = fold_vec_perm (type, cop0, cop1, sel))
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1241;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1241;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1241;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1241;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7628, __FILE__, __LINE__);
{
tree _r;
_r = t;
return _r;
}
next_after_fail1241:;
}
else
{
{
/* #line 7629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
bool changed = (op0 == op1 && !single_arg);
tree ins = NULL_TREE;
unsigned at = 0;
if (TYPE_MODE (type) != BLKmode
&& (TREE_CODE (cop0) == VECTOR_CST
|| TREE_CODE (cop0) == CONSTRUCTOR
|| TREE_CODE (cop1) == VECTOR_CST
|| TREE_CODE (cop1) == CONSTRUCTOR))
{
bool insert_first_p = sel.series_p (1, 1, nelts + 1, 1);
if (insert_first_p)
{
at = 0;
if ((ins = fold_read_from_vector (cop0, sel[0])))
op0 = op1;
}
if (!insert_first_p || (!ins && maybe_eq (nelts, 2u)))
{
unsigned int encoded_nelts = sel.encoding ().encoded_nelts ();
for (at = 0; at < encoded_nelts; ++at)
if (maybe_ne (sel[at], at))
break;
if (at < encoded_nelts
&& (known_eq (at + 1, nelts)
|| sel.series_p (at + 1, 1, at + 1, 1)))
{
if (known_lt (poly_uint64 (sel[at]), nelts))
ins = fold_read_from_vector (cop0, sel[at]);
else
ins = fold_read_from_vector (cop1, sel[at] - nelts);
}
}
}
if (!ins && sel.encoding () != builder)
{
tree oldop2 = op2;
if (sel.ninputs () == 2
|| can_vec_perm_const_p (TYPE_MODE (type), sel, false))
op2 = vec_perm_indices_to_tree (TREE_TYPE (op2), sel);
else
{
vec_perm_indices sel2 (builder, 2, nelts);
if (can_vec_perm_const_p (TYPE_MODE (type), sel2, false))
op2 = vec_perm_indices_to_tree (TREE_TYPE (op2), sel2);
else
op2 = vec_perm_indices_to_tree (TREE_TYPE (op2), sel);
}
if (!operand_equal_p (op2, oldop2, 0))
changed = true;
}
/* #line 7701 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (ins
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1242;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1242;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1242;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1242;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7702, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = op0;
tree res_op1;
res_op1 = ins;
tree res_op2;
res_op2 = bitsize_int (at * vector_element_bits (type));
tree _r;
_r = fold_build3_loc (loc, BIT_INSERT_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1242:;
}
else
{
/* #line 7704 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
if (changed
)
{
if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1243;
if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1243;
if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1243;
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1243;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7705, __FILE__, __LINE__);
{
tree res_op0;
res_op0 = op0;
tree res_op1;
res_op1 = op1;
tree res_op2;
res_op2 = op2;
tree _r;
_r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
return _r;
}
next_after_fail1243:;
}
}
}
}
}
}
}
}
}
break;
}
default:;
}
if (tree_vec_same_elem_p (_p0))
{
if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
{
{
/* #line 7724 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */
tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p2 };
if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1244;
if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7724, __FILE__, __LINE__);
{
tree _r;
_r = captures[0];
if (TREE_SIDE_EFFECTS (captures[1]))
_r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
return _r;
}
next_after_fail1244:;
}
}
}
return NULL_TREE;
}
tree
generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0, tree _p1, tree _p2)
{
switch (code)
{
case COND_EXPR:
return generic_simplify_COND_EXPR (loc, code, type, _p0, _p1, _p2);
case VEC_COND_EXPR:
return generic_simplify_VEC_COND_EXPR (loc, code, type, _p0, _p1, _p2);
case BIT_FIELD_REF:
return generic_simplify_BIT_FIELD_REF (loc, code, type, _p0, _p1, _p2);
case VEC_PERM_EXPR:
return generic_simplify_VEC_PERM_EXPR (loc, code, type, _p0, _p1, _p2);
default:;
}
return NULL_TREE;
}
tree
generic_simplify (location_t, enum tree_code,
const tree, tree, tree, tree, tree)
{
return NULL_TREE;
}
tree
generic_simplify (location_t, enum tree_code,
const tree, tree, tree, tree, tree, tree)
{
return NULL_TREE;
}