/* 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])), ") ) { 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 *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 (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 (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; }