/* Generated automatically by the program `genmatch' from a IL pattern matching and simplification description. */ #include "gimple-match-head.cc" bool gimple_nop_convert (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); { /* #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 (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_p0) == SSA_NAME || is_gimple_min_invariant (_p0))) { _p0 = do_valueize (valueize, _p0); { /* #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:; } } break; default:; } return false; } bool gimple_power_of_two_cand (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); 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_fail3:; } break; } default:; } break; } default:; } } break; 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_fail4:; } break; } default:; } return false; } bool gimple_negate_expr_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); { /* #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_fail5:; } } break; } case MINUS_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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_fail6:; } } break; } default:; } } break; 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_fail7:; } } 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_fail8:; } 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_fail9:; } } 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_fail10:; } } break; } default:; } return false; } bool gimple_truth_valued_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); { /* #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 SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LT_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); { /* #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:; } } break; default:; } return false; } bool gimple_logical_inverted_value (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case TRUTH_NOT_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); if (gimple_truth_valued_p (_p0, valueize)) { { /* #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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); 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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); if (gimple_truth_valued_p (_p0, valueize)) { 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 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); if (gimple_truth_valued_p (_p0, valueize)) { 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:; } } break; default:; } return false; } bool gimple_with_possible_nonzero_bits (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case INTEGER_CST: { { /* #line 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 gimple_with_possible_nonzero_bits2 (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); if (gimple_with_possible_nonzero_bits (_p0, valueize)) { { /* #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 (gimple_with_possible_nonzero_bits (_p1, valueize)) { { /* #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:; } } break; default:; } if (gimple_with_possible_nonzero_bits (t, valueize)) { { /* #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 gimple_with_certain_nonzero_bits2 (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); 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_fail42:; } break; } default:; } break; } default:; } } break; 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_fail43:; } break; } default:; } return false; } bool gimple_min_value (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); 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 gimple_max_value (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); 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 gimple_compositional_complex (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); { /* #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; default:; } break; } case COMPLEX_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); { /* #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:; } } break; default:; } return false; } bool gimple_nop_atomic_bit_test_and_p (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); if (tree_swap_operands_p (_p0, _p1)) std::swap (_p0, _p1); switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q20)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_ATOMIC_FETCH_OR_1: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail48:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail49:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail50:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail51:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail52:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_2: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail53:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail54:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail55:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail56:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail57:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_4: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail58:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail59:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail60:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail61:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail62:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_8: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail63:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail64:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail65:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail66:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail67:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_16: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail68:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail69:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail70:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail71:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail72:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_1: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail73:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail74:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail75:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail76:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail77:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_2: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail78:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail79:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail80:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail81:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail82:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_4: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail83:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail84:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail85:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail86:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail87:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_8: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail88:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail89:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail90:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail91:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail92:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_16: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail93:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail94:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail95:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail96:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail97:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_1: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail98:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail99:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail100:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail101:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail102:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_2: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail103:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail104:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail105:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail106:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail107:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_4: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail108:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail109:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail110:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail111:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail112:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_8: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail113:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail114:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail115:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail116:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail117:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_16: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail118:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail119:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30, _q32 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail120:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail121:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail122:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail123:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail124:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail125:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail126:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail127:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail128:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail129:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail130:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail131:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail132:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail133:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail134:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail135:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail136:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, _q30 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail137:; } } } break; } default:; } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gcall *_c4 = dyn_cast (_d4)) switch (gimple_call_combined_fn (_c4)) { case CFN_BUILT_IN_ATOMIC_FETCH_OR_1: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail138:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail139:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_2: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail140:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail141:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_4: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail142:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail143:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_8: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail144:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail145:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_16: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail146:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail147:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_1: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail148:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail149:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_2: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail150:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail151:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_4: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail152:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail153:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_8: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail154:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail155:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_16: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail156:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail157:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_1: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail158:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail159:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_2: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail160:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail161:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_4: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail162:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail163:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_8: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail164:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail165:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_16: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail166:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81, _q52 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail167:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_ATOMIC_FETCH_OR_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail168:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail169:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail170:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail171:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail172:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail173:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail174:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail175:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail176:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail177:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail178:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail179:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail180:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail181:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail182:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail183:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail184:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail185:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail186:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail187:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail188:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail189:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail190:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail191:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail192:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail193:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail194:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail195:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail196:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail197:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_ATOMIC_FETCH_OR_1: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail198:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail199:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail200:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail201:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail202:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_2: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail203:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail204:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail205:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail206:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail207:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_4: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail208:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail209:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail210:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail211:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail212:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_8: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail213:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail214:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail215:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail216:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail217:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_16: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail218:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail219:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail220:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail221:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail222:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_1: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail223:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail224:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail225:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail226:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail227:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_2: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail228:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail229:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail230:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail231:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail232:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_4: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail233:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail234:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail235:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail236:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail237:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_8: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail238:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail239:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail240:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail241:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail242:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_16: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail243:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail244:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail245:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail246:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail247:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_1: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail248:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail249:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail250:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail251:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail252:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_2: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail253:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail254:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail255:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail256:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail257:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_4: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail258:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail259:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail260:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail261:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail262:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_8: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail263:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail264:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail265:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail266:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail267:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_16: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail268:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail269:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20, _q22 }; { /* #line 4111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4115 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4108, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail270:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail271:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail272:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail273:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail274:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail275:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail276:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail277:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail278:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail279:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail280:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail281:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail282:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail283:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail284:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail285:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail286:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail287:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail288:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail289:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail290:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail291:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail292:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail293:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail294:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail295:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail296:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail297:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail298:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail299:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail300:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail301:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail302:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail303:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail304:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail305:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail306:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail307:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail308:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail309:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail310:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail311:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail312:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail313:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail314:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail315:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail316:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail317:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail318:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail319:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail320:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail321:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail322:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail323:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail324:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail325:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail326:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail327:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail328:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail329:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail330:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail331:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail332:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail333:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail334:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail335:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail336:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail337:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail338:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail339:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail340:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail341:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail342:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail343:; } } } break; } default:; } } break; default:; } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p0, _q20, _q40, _q41 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail344:; } } } } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, _q20 }; { /* #line 4122 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = tree_log2 (captures[0]); int ibit2 = tree_log2 (captures[1]); /* #line 4126 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4119, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail345:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail346:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p0, _q20, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail347:; } } } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_ATOMIC_FETCH_OR_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail348:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail349:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail350:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail351:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail352:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail353:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail354:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail355:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail356:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail357:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail358:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail359:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail360:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail361:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail362:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail363:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail364:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail365:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail366:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail367:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail368:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail369:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail370:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail371:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail372:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail373:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail374:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail375:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail376:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71, _q42 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail377:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_ATOMIC_FETCH_OR_1: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail378:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail379:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_2: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail380:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail381:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_4: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail382:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail383:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_8: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail384:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail385:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_OR_16: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail386:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail387:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_1: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail388:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail389:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_2: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail390:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail391:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_4: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail392:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail393:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_8: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail394:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail395:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_XOR_16: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail396:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail397:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_1: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail398:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail399:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_2: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail400:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail401:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_4: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail402:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail403:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_8: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail404:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail405:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_ATOMIC_XOR_FETCH_16: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail406:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61, _q32 }; /* #line 4135 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4130, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail407:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q20)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail408:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail409:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail410:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail411:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail412:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail413:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail414:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail415:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail416:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail417:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail418:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail419:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail420:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail421:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail422:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail423:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail424:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail425:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail426:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail427:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail428:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail429:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail430:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail431:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail432:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail433:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail434:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail435:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail436:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail437:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail438:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail439:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail440:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail441:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail442:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail443:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail444:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail445:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail446:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail447:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail448:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail449:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail450:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail451:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail452:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail453:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail454:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail455:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail456:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail457:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail458:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail459:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail460:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail461:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail462:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail463:; } } } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail464:; } } } break; } default:; } } break; default:; } if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p0, _q30, _q50, _q51 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail465:; } } } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail466:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p0, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail467:; } } } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gcall *_c4 = dyn_cast (_d4)) switch (gimple_call_combined_fn (_c4)) { case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail468:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail469:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail470:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail471:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail472:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail473:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail474:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail475:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail476:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail477:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail478:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail479:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail480:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail481:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail482:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail483:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail484:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail485:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail486:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail487:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail488:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail489:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail490:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail491:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail492:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail493:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail494:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail495:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q90, _q91 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail496:; } } } break; } default:; } } break; default:; } } } } if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q50, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail497:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail498:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail499:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail500:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail501:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail502:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail503:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail504:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail505:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail506:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail507:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail508:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail509:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail510:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail511:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail512:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail513:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail514:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail515:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail516:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail517:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail518:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail519:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail520:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail521:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail522:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail523:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail524:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail525:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail526:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail527:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q20)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_ATOMIC_FETCH_AND_1: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail528:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail529:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30, _q32 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail530:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q110 = gimple_assign_rhs1 (_a6); _q110 = do_valueize (valueize, _q110); if ((_q110 == _q60 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q60, 0) && types_match (_q110, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail531:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail532:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_2: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail533:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail534:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30, _q32 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail535:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q110 = gimple_assign_rhs1 (_a6); _q110 = do_valueize (valueize, _q110); if ((_q110 == _q60 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q60, 0) && types_match (_q110, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail536:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail537:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_4: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail538:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail539:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30, _q32 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail540:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q110 = gimple_assign_rhs1 (_a6); _q110 = do_valueize (valueize, _q110); if ((_q110 == _q60 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q60, 0) && types_match (_q110, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail541:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail542:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_8: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail543:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail544:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30, _q32 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail545:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q110 = gimple_assign_rhs1 (_a6); _q110 = do_valueize (valueize, _q110); if ((_q110 == _q60 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q60, 0) && types_match (_q110, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail546:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail547:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_16: if (gimple_call_num_args (_c3) == 3) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c3, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail548:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail549:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30, _q32 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail550:; } } } break; } default:; } break; } default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q110 = gimple_assign_rhs1 (_a6); _q110 = do_valueize (valueize, _q110); if ((_q110 == _q60 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q60, 0) && types_match (_q110, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail551:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail552:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail553:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail554:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail555:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail556:; } } } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p0, t, _q30 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail557:; } } } break; } default:; } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gcall *_c4 = dyn_cast (_d4)) switch (gimple_call_combined_fn (_c4)) { case CFN_BUILT_IN_ATOMIC_FETCH_AND_1: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail558:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail559:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_2: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail560:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail561:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_4: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail562:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail563:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_8: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail564:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail565:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_16: if (gimple_call_num_args (_c4) == 3) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c4, 2); _q52 = do_valueize (valueize, _q52); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail566:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101, _q52 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail567:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_ATOMIC_FETCH_AND_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail568:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail569:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail570:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail571:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail572:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail573:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail574:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail575:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail576:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail577:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail578:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail579:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail580:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail581:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail582:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail583:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail584:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail585:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail586:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail587:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail588:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail589:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail590:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail591:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail592:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail593:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail594:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail595:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail596:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail597:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail598:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail599:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail600:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail601:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail602:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail603:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail604:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail605:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q80, _q81 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail606:; } } } break; } default:; } } break; default:; } } } } if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail607:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SYNC_FETCH_AND_OR_1: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail608:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail609:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_2: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail610:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail611:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_4: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail612:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail613:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_8: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail614:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail615:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_OR_16: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail616:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail617:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_1: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail618:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail619:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_2: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail620:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail621:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_4: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail622:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail623:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_8: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail624:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail625:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_XOR_16: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail626:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail627:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_1: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail628:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail629:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_2: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail630:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail631:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_4: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail632:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail633:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_8: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail634:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail635:; } } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_SYNC_XOR_AND_FETCH_16: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q70, _q71 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail636:; } } } break; } default:; } } break; default:; } } } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { { /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q60, _q61 }; /* #line 4142 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4137, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[0]; res_ops[2] = captures[1]; return true; } next_after_fail637:; } } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_ATOMIC_FETCH_AND_1: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail638:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail639:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20, _q22 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail640:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail641:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail642:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_2: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail643:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail644:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20, _q22 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail645:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail646:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail647:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_4: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail648:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail649:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20, _q22 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail650:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail651:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail652:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_8: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail653:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail654:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20, _q22 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail655:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail656:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail657:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_16: if (gimple_call_num_args (_c2) == 3) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c2, 2); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail658:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail659:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20, _q22 }; { /* #line 4147 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4152 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4144, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail660:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a5); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail661:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61, _q22 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail662:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail663:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail664:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail665:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail666:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail667:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail668:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail669:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail670:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail671:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail672:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail673:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail674:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail675:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail676:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail677:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail678:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail679:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail680:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail681:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail682:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c2) == 2) { tree _q20 = gimple_call_arg (_c2, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c2, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail683:; } } } break; } default:; } } break; default:; } if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q40, _p0, _q20, _q50, _q51 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail684:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q21, _p1, _p0, t, _q20 }; { /* #line 4160 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int ibit = wi::exact_log2 (wi::zext (wi::bit_not (wi::to_wide (captures[0])), TYPE_PRECISION(type))); int ibit2 = tree_log2 (captures[1]); /* #line 4165 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ibit == ibit2 && ibit >= 0 && TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4156, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail685:; } } } break; } default:; } break; } default:; } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q40 = _q21_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _p1)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail686:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q21, _q50, _p0, _q20, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail687:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_ATOMIC_FETCH_AND_1: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail688:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail689:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_2: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail690:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail691:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_4: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail692:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail693:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_8: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail694:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail695:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_16: if (gimple_call_num_args (_c3) == 3) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c3, 2); _q42 = do_valueize (valueize, _q42); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail696:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91, _q42 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail697:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_ATOMIC_FETCH_AND_1: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail698:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail699:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_2: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail700:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail701:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_4: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail702:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail703:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_8: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail704:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail705:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_ATOMIC_FETCH_AND_16: if (gimple_call_num_args (_c2) == 3) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c2, 2); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail706:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81, _q32 }; /* #line 4174 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4169, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail707:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q20)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail708:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail709:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail710:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail711:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail712:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail713:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail714:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail715:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail716:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail717:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail718:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail719:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail720:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail721:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail722:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail723:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c3) == 2) { tree _q30 = gimple_call_arg (_c3, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c3, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (integer_onep (_q60)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail724:; } } } break; } default:; } } break; default:; } if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q50, _p0, _q30, _q60, _q61 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail725:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _p1)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { CASE_CONVERT: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail726:; } } } break; } default:; } } break; default:; } if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60))) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _q60, _p0, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail727:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gcall *_c4 = dyn_cast (_d4)) switch (gimple_call_combined_fn (_c4)) { case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail728:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail729:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail730:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail731:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail732:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail733:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail734:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail735:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c4) == 2) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c4, 1); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q51)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q70)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail736:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q51_pops[1]; if (gimple_nop_convert (_q51, _q51_pops, valueize)) { tree _q70 = _q51_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20))) { switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (integer_onep (_q100)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q51, _q20, _p1, _q50, _q100, _q101 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail737:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail738:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail739:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail740:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail741:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail742:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail743:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail744:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail745:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail746:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _q20, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail747:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail748:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail749:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail750:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail751:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail752:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail753:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail754:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail755:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c3) == 2) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c3, 1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a5); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail756:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { tree _q60 = _q41_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0))) { switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LSHIFT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (integer_onep (_q90)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q41, _p0, _p1, _q40, _q90, _q91 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail757:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SYNC_FETCH_AND_AND_1: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail758:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail759:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_2: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail760:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail761:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_4: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail762:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail763:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_8: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail764:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail765:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; case CFN_BUILT_IN_SYNC_FETCH_AND_AND_16: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0))) { switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_onep (_q70)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q70, _q71 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail766:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q50 = _q31_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0))) { switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LSHIFT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (integer_onep (_q80)) { { /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _q31, _p0, _p1, _q30, _q80, _q81 }; /* #line 4181 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (type) <= TYPE_PRECISION (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", 4176, __FILE__, __LINE__); { res_ops[0] = captures[0]; res_ops[1] = captures[1]; res_ops[2] = captures[2]; return true; } next_after_fail767:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } } break; default:; } } break; default:; } break; } default:; } } break; default:; } return false; } bool gimple_double_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); { /* #line 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_fail768:; } } return false; } bool gimple_float_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); { /* #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_fail769:; } } return false; } bool gimple_float16_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); { /* #line 6441 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { t }; /* #line 6441 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float16_type_node ) { if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 6440, __FILE__, __LINE__); { return true; } next_after_fail770:; } } return false; } bool gimple_vec_same_elem_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_DUPLICATE_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); { /* #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_fail771:; } 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_fail772:; } } break; } default:; } } 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_fail773:; } } return false; } bool gimple_ctz_table_index (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RSHIFT_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q20)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a3); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a3); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q30)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a4); _q40 = do_valueize (valueize, _q40); 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_fail774:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); 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_fail775:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } bool gimple_cond_expr_convert_p (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED) { const tree type = TREE_TYPE (t); switch (TREE_CODE (t)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, t)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _p0 = gimple_assign_rhs1 (_a1); _p0 = do_valueize (valueize, _p0); tree _p1 = gimple_assign_rhs2 (_a1); _p1 = do_valueize (valueize, _p1); tree _p2 = gimple_assign_rhs3 (_a1); _p2 = do_valueize (valueize, _p2); switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p0)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p2)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #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_fail776:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p2)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #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_fail777:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p2)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #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_fail778:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p2)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #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_fail779:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p2)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #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_fail780:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a2); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a2); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p2)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #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_fail781:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; case LT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p2)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); { /* #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_fail782:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } case LE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p2)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); { /* #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_fail783:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } case EQ_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p2)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); { /* #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_fail784:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } case NE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p2)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); { /* #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_fail785:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } case GE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p2)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); { /* #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_fail786:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } case GT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p2)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); { /* #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_fail787:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_1 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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 ) { gimple_seq *lseq = seq; 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", 5346, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail788:; } else { gimple_seq *lseq = seq; 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", 5348, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail789; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail789:; } } 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])))) ) { gimple_seq *lseq = seq; 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", 5364, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[3]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail790; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail790:; } 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 ) { gimple_seq *lseq = seq; 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", 5377, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == EQ_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail791:; } else { /* #line 5378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR || cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5379, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (above ? true : false, type); res_op->set_value (tem); return true; } next_after_fail792:; } else { /* #line 5380 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR || cmp == GE_EXPR ) { gimple_seq *lseq = seq; 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", 5381, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (above ? false : true, type); res_op->set_value (tem); return true; } next_after_fail793:; } } } } } } } } } } return false; } static bool gimple_simplify_2 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1068, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail794:; return false; } static bool gimple_simplify_3 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 411, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail795:; } return false; } static bool gimple_simplify_4 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 3835, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail796:; return false; } static bool gimple_simplify_5 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 2612, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail797:; } } return false; } static bool gimple_simplify_6 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3542, __FILE__, __LINE__); { tree tem; tem = build_int_cst (type, 0); res_op->set_value (tem); return true; } next_after_fail798:; } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3560, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; if (shift_type != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail799; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail799; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail799; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail799:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3561, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail800:; } } } } } } } } } } return false; } static bool gimple_simplify_7 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 3105, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail801:; return false; } static bool gimple_simplify_8 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (SIGNBIT)) { gimple_seq *lseq = seq; 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", 6795, __FILE__, __LINE__); { tree tem; tem = integer_zero_node; res_op->set_value (tem); return true; } next_after_fail802:; return false; } static bool gimple_simplify_9 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 2637, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail803; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail803; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail803; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail803:; } else { gimple_seq *lseq = seq; 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", 2638, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail804; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail804; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), neg_inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail804; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail804:; } } } 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 ) { gimple_seq *lseq = seq; 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", 2642, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail805; _o2[0] = _r3; } _o2[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail805; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail805; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail805:; } else { gimple_seq *lseq = seq; 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", 2643, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail806; _o2[0] = _r3; } _o2[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), neg_inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail806; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail806; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail806:; } } 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) ) { gimple_seq *lseq = seq; 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", 2652, __FILE__, __LINE__); { res_op->set_op (inner_op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = cst; res_op->resimplify (lseq, valueize); return true; } next_after_fail807:; } 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) ) { gimple_seq *lseq = seq; 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", 2656, __FILE__, __LINE__); { res_op->set_op (neg_inner_op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (type, wi::to_wide (cst)); res_op->resimplify (lseq, valueize); return true; } next_after_fail808:; } 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 ) { gimple_seq *lseq = seq; 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", 2660, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail809; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = drop_tree_overflow (cst); gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail809; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail809; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail809:; } } } } } } } } } } return false; } static bool gimple_simplify_10 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 6278, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_one_cst (type); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), COSH, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail810; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail810:; } return false; } static bool gimple_simplify_11 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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]) ) { gimple_seq *lseq = seq; 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", 7319, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail811:; } 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 ) { gimple_seq *lseq = seq; 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", 7321, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR ? true : false, type); res_op->set_value (tem); return true; } next_after_fail812:; } else { /* #line 7322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) ) { gimple_seq *lseq = seq; 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", 7323, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { 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)); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail813; res_op->ops[0] = _r1; } res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[1]), wi::shifted_mask (tree_to_uhwi (captures[2]) - 1, 1, false, prec)); res_op->resimplify (lseq, valueize); return true; } next_after_fail813:; } } } } return false; } static bool gimple_simplify_12 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 226, __FILE__, __LINE__); { res_op->set_op (outer_op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail814:; } else { gimple_seq *lseq = seq; 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", 227, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail815:; } } } return false; } static bool gimple_simplify_13 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (SIGNBIT)) { /* #line 6800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (captures[0]) ) { gimple_seq *lseq = seq; 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", 6801, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0); gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail816; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail816:; } return false; } static bool gimple_simplify_14 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 2620, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail817:; } } return false; } static bool gimple_simplify_15 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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, 0 ); /* #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) ) { gimple_seq *lseq = seq; 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", 3181, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail818:; } else { /* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_gt (off0, off1) ) { gimple_seq *lseq = seq; 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", 3183, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail819:; } } } else { /* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_ge (off0, off1) ) { gimple_seq *lseq = seq; 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", 3185, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail820:; } else { /* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_lt (off0, off1) ) { gimple_seq *lseq = seq; 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", 3187, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail821:; } } } } } return false; } static bool gimple_simplify_16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (opo), const enum tree_code ARG_UNUSED (opi)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!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", 1469, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail822; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail822:; return false; } static bool gimple_simplify_17 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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, 0 ); /* #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)) ) { gimple_seq *lseq = seq; 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", 5600, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_eq (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail823:; } else { /* #line 5601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5602, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_ne (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail824:; } else { /* #line 5603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5604, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_lt (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail825:; } else { /* #line 5605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5606, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_le (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail826:; } else { /* #line 5607 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5608, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_ge (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail827:; } else { /* #line 5609 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5610, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_gt (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail828:; } } } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5614, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail829:; } else { /* #line 5615 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == NE_EXPR ) { gimple_seq *lseq = seq; 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", 5616, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail830:; } } } } } return false; } static bool gimple_simplify_18 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 1877, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail831:; } return false; } static bool gimple_simplify_19 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1946, __FILE__, __LINE__); { tree tem; tem = build_int_cst (type, (code == LT_EXPR) ^ neg_overflow); res_op->set_value (tem); return true; } next_after_fail832:; } else { /* #line 1947 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == LT_EXPR ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1948, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = lo; res_op->resimplify (lseq, valueize); return true; } next_after_fail833:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1949, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = lo; res_op->resimplify (lseq, valueize); return true; } next_after_fail834:; } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1952, __FILE__, __LINE__); { tree tem; tem = build_int_cst (type, (code == LE_EXPR) ^ neg_overflow); res_op->set_value (tem); return true; } next_after_fail835:; } else { /* #line 1953 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == LE_EXPR ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1954, __FILE__, __LINE__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = hi; res_op->resimplify (lseq, valueize); return true; } next_after_fail836:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1955, __FILE__, __LINE__); { res_op->set_op (GT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = hi; res_op->resimplify (lseq, valueize); return true; } next_after_fail837:; } } } else { /* #line 1956 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!lo && !hi ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1957, __FILE__, __LINE__); { tree tem; tem = build_int_cst (type, code == NE_EXPR); res_op->set_value (tem); return true; } next_after_fail838:; } else { /* #line 1958 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == EQ_EXPR && !hi ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1959, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = lo; res_op->resimplify (lseq, valueize); return true; } next_after_fail839:; } else { /* #line 1960 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == EQ_EXPR && !lo ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1961, __FILE__, __LINE__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = hi; res_op->resimplify (lseq, valueize); return true; } next_after_fail840:; } else { /* #line 1962 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == NE_EXPR && !hi ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1963, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = lo; res_op->resimplify (lseq, valueize); return true; } next_after_fail841:; } else { /* #line 1964 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == NE_EXPR && !lo ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1965, __FILE__, __LINE__); { res_op->set_op (GT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = hi; res_op->resimplify (lseq, valueize); return true; } next_after_fail842:; } else { /* #line 1966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (0 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1967, __FILE__, __LINE__); { tree tem; tem = build_range_check (UNKNOWN_LOCATION, type, captures[1], code == EQ_EXPR, lo, hi); res_op->set_value (tem); return true; } next_after_fail843:; } 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1981, __FILE__, __LINE__); { res_op->set_op (LE_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (etype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (etype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, etype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail844; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = lo; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail844; res_op->ops[0] = _r1; } res_op->ops[1] = hi; res_op->resimplify (lseq, valueize); return true; } next_after_fail844:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1982, __FILE__, __LINE__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (etype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (etype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, etype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail845; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = lo; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail845; res_op->ops[0] = _r1; } res_op->ops[1] = hi; res_op->resimplify (lseq, valueize); return true; } next_after_fail845:; } } } } } } } } } } } } } return false; } static bool gimple_simplify_20 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 2336, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail846:; return false; } static bool gimple_simplify_21 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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) ) { gimple_seq *lseq = seq; 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", 5294, __FILE__, __LINE__); { res_op->set_op (eqcmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = wide_int_to_tree (ty, mask - rhs); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail847; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (ty); res_op->resimplify (lseq, valueize); return true; } next_after_fail847:; } } } return false; } static bool gimple_simplify_22 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 4632, __FILE__, __LINE__); { res_op->set_op (acmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[1]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail848:; } } return false; } static bool gimple_simplify_23 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 330, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail849; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail849:; } return false; } static bool gimple_simplify_24 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (COPYSIGN_ALL)) { gimple_seq *lseq = seq; 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", 6223, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail850:; return false; } static bool gimple_simplify_25 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop)) { gimple_seq *lseq = seq; 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", 1217, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail851:; return false; } static bool gimple_simplify_26 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op), 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])) ) { gimple_seq *lseq = seq; 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", 578, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail852:; } else { /* #line 580 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0) ) { gimple_seq *lseq = seq; 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", 581, __FILE__, __LINE__); { res_op->set_op (neg_op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail853:; } } } } return false; } static bool gimple_simplify_27 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 322, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail854; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail854:; } return false; } static bool gimple_simplify_28 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop)) { /* #line 1731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!CONSTANT_CLASS_P (captures[0]) ) { gimple_seq *lseq = seq; 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", 1734, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail855; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail855:; } 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 ) { gimple_seq *lseq = seq; 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", 1745, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = cst1; res_op->resimplify (lseq, valueize); return true; } next_after_fail856:; } 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 ) { gimple_seq *lseq = seq; 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", 1748, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = cst2; res_op->resimplify (lseq, valueize); return true; } next_after_fail857:; } } } } } return false; } static bool gimple_simplify_29 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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) ) { gimple_seq *lseq = seq; 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", 2425, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail858:; } else { gimple_seq *lseq = seq; 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", 2426, __FILE__, __LINE__); { tree tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail859:; } } 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) ) { gimple_seq *lseq = seq; 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", 2431, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail860:; } else { gimple_seq *lseq = seq; 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", 2432, __FILE__, __LINE__); { tree tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail861:; } } 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)) ) { gimple_seq *lseq = seq; 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", 2437, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail862:; } 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) ) { gimple_seq *lseq = seq; 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", 2442, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail863:; } 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) ) { gimple_seq *lseq = seq; 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", 2446, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail864:; } } } } } } return false; } static bool gimple_simplify_30 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1234, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail865:; return false; } static bool gimple_simplify_31 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !TYPE_UNSIGNED (TREE_TYPE (captures[0])) && wi::to_widest (captures[2]) == element_precision (TREE_TYPE (captures[0])) - 1 ) { gimple_seq *lseq = seq; 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", 173, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail866:; } return false; } static bool gimple_simplify_32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; 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", 872, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail867; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail867:; } else { gimple_seq *lseq = seq; 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", 873, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail868:; } return false; } static bool gimple_simplify_33 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), 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])) ) { gimple_seq *lseq = seq; 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", 5859, __FILE__, __LINE__); { res_op->set_op (out, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail869; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail869:; } return false; } static bool gimple_simplify_34 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; 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", 905, __FILE__, __LINE__); { res_op->set_op (LSHIFT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail870:; } return false; } static bool gimple_simplify_35 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1148, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = pmop[0]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail871; } else _r3 = _o3[0]; _o2[0] = _r3; } { tree _o3[1], _r3; _o3[0] = pmop[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail871; } else _r3 = _o3[0]; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail871; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail871; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail871; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail871:; } } return false; } static bool gimple_simplify_36 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 481, __FILE__, __LINE__); { res_op->set_op (div, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (type, mul); res_op->resimplify (lseq, valueize); return true; } next_after_fail872:; } else { /* #line 482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_UNSIGNED (type) || mul != wi::min_value (TYPE_PRECISION (type), SIGNED) ) { gimple_seq *lseq = seq; 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", 484, __FILE__, __LINE__); { tree tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail873:; } } } } return false; } static bool gimple_simplify_37 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4552, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail874:; } return false; } static bool gimple_simplify_38 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 713, __FILE__, __LINE__); { res_op->set_op (shift, type, 2); res_op->ops[0] = captures[0]; { 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); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail875; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail875; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail875:; } return false; } static bool gimple_simplify_39 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (FMIN_ALL)) { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_finite_math_only ) { gimple_seq *lseq = seq; 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", 3216, __FILE__, __LINE__); { res_op->set_op (MIN_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail876:; } return false; } static bool gimple_simplify_40 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 6622, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail877:; return false; } static bool gimple_simplify_41 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7046, __FILE__, __LINE__); { res_op->set_op (CFN_FMS, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail878:; } return false; } static bool gimple_simplify_42 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4537, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail879:; } return false; } static bool gimple_simplify_43 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 526, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2); res_op->ops[0] = build_one_cst (type); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail880; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail880:; } else { /* #line 527 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (types_match (type, double_type_node) ) { gimple_seq *lseq = seq; 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", 528, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2); res_op->ops[0] = build_one_cst (type); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail881; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail881:; } else { /* #line 529 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (types_match (type, long_double_type_node) ) { gimple_seq *lseq = seq; 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", 530, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2); res_op->ops[0] = build_one_cst (type); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail882; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail882:; } } } } return false; } static bool gimple_simplify_44 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6675, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; { tree _o1[1], _r1; _o1[0] = captures[4]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail883; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail883:; } else { { /* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!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", 6677, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail884; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail884; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail884; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail884:; } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6708, __FILE__, __LINE__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail885; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[4]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail885; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail885:; } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6741, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail886; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail886; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail886; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail886:; } } } } } } } } return false; } static bool gimple_simplify_45 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; 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", 1462, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail887; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail887; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail887:; } return false; } static bool gimple_simplify_46 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; 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", 1279, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail888; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail888; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail888:; return false; } static bool gimple_simplify_47 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]))); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; 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", 3060, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (type, c); res_op->resimplify (lseq, valueize); return true; } next_after_fail889:; } } return false; } static bool gimple_simplify_48 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 4353, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[2]; if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail890; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail890; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail890:; } else { /* #line 4354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == MIN_EXPR ) { gimple_seq *lseq = seq; 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", 4355, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[2]; if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail891; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail891; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail891:; } else { /* #line 4356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == EQ_EXPR ) { gimple_seq *lseq = seq; 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", 4357, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[3], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; { tree _o3[1], _r3; _o3[0] = captures[1]; if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (TREE_TYPE (_o2[0]), TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail892; } else _r3 = _o3[0]; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, boolean_type_node, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail892; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[1]; if (from_type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (from_type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, from_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail892; } else _r2 = _o2[0]; _o1[1] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[2]; if (from_type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (from_type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, from_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail892; } else _r2 = _o2[0]; _o1[2] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail892; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail892:; } } } } return false; } static bool gimple_simplify_49 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 6257, __FILE__, __LINE__); { res_op->set_op (SIN, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail893:; } return false; } static bool gimple_simplify_50 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; 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", 1286, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail894; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail894:; return false; } static bool gimple_simplify_51 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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]); gimple_seq *lseq = seq; 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", 3979, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (ctype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (ctype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, ctype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail895; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), bswap, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail895; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail895:; } return false; } static bool gimple_simplify_52 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 3094, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (t != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail896; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = wide_int_to_tree (t, c); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, t, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail896; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail896:; } } return false; } static bool gimple_simplify_53 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1296, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail897:; return false; } static bool gimple_simplify_54 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1063, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail898:; return false; } static bool gimple_simplify_55 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (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); gimple_seq *lseq = seq; 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", 4029, __FILE__, __LINE__); { res_op->set_op (RSHIFT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; if (st != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (st, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail899; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = nst; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, st, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail899; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail899; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail899:; } } 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) ) { gimple_seq *lseq = seq; 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", 4032, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; if (unsigned_char_type_node != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (unsigned_char_type_node, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, unsigned_char_type_node, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail900; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail900:; } else { gimple_seq *lseq = seq; 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", 4033, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; if (signed_char_type_node != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (signed_char_type_node, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, signed_char_type_node, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail901; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail901:; } } 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; gimple_seq *lseq = seq; 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", 4041, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (bt != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (bt, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, bt, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail902; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = nst; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, bt, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail902; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail902:; } } } } } } return false; } static bool gimple_simplify_56 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (bswap)) { gimple_seq *lseq = seq; 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", 3966, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail903:; return false; } static bool gimple_simplify_57 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; 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", 1306, __FILE__, __LINE__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail904; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail904:; return false; } static bool gimple_simplify_58 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 4943, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail905:; } else { /* #line 4946 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == NE_EXPR || !HONOR_NANS (captures[0]) ) { gimple_seq *lseq = seq; 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", 4947, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail906:; } else { gimple_seq *lseq = seq; 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", 4949, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), dconst0); res_op->resimplify (lseq, valueize); return true; } next_after_fail907:; } } } 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 ) { gimple_seq *lseq = seq; 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", 4954, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail908:; } else { /* #line 4956 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR && !HONOR_NANS (captures[0]) ) { gimple_seq *lseq = seq; 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", 4957, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail909:; } else { /* #line 4959 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 4960, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail910:; } else { gimple_seq *lseq = seq; 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", 4968, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail911:; } } } } 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]) ) { gimple_seq *lseq = seq; 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", 5030, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail912:; } else { gimple_seq *lseq = seq; 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", 5031, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail913:; } } 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 ) { gimple_seq *lseq = seq; 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", 5035, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail914:; } else { gimple_seq *lseq = seq; 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", 5036, __FILE__, __LINE__); { res_op->set_op (GT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail915:; } } } } 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]) ) { gimple_seq *lseq = seq; 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", 5043, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail916:; } else { /* #line 5046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (! HONOR_NANS (captures[0]) ) { gimple_seq *lseq = seq; 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", 5047, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail917:; } else { /* #line 5050 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (! HONOR_INFINITIES (captures[0]) ) { gimple_seq *lseq = seq; 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", 5051, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), dconst0); res_op->resimplify (lseq, valueize); return true; } next_after_fail918:; } else { /* #line 5053 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (0 ) { gimple_seq *lseq = seq; 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", 5054, __FILE__, __LINE__); { res_op->set_op (TRUTH_ANDIF_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0); gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail919; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail919; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail919:; } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5060, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail920:; } else { gimple_seq *lseq = seq; 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", 5061, __FILE__, __LINE__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail921:; } } else { /* #line 5063 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ncmp != ERROR_MARK && 0 ) { /* #line 5064 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ncmp == LT_EXPR ) { gimple_seq *lseq = seq; 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", 5065, __FILE__, __LINE__); { res_op->set_op (TRUTH_ANDIF_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0); gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail922; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail922; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail922:; } else { gimple_seq *lseq = seq; 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", 5068, __FILE__, __LINE__); { res_op->set_op (TRUTH_ANDIF_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), dconst0); gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail923; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (TREE_TYPE (captures[0]), c2); gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail923; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail923:; } } } } } } } } } } return false; } static bool gimple_simplify_59 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3583, __FILE__, __LINE__); { res_op->set_op (bit_op, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail924; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail924; res_op->ops[0] = _r1; } res_op->ops[1] = mask; res_op->resimplify (lseq, valueize); return true; } next_after_fail924:; } } } return false; } static bool gimple_simplify_60 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1780, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail925:; return false; } static bool gimple_simplify_61 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])), ") ) { gimple_seq *lseq = seq; 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", 4733, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[0]), quot); res_op->resimplify (lseq, valueize); return true; } next_after_fail926:; } else { gimple_seq *lseq = seq; 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", 4734, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail927:; } } } 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) ) { gimple_seq *lseq = seq; 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", 4738, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; 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_op->ops[1] = wide_int_to_tree (itype, wi::mul (i, wi::to_wide (captures[2]))); res_op->resimplify (lseq, valueize); return true; } next_after_fail928:; } } return false; } static bool gimple_simplify_62 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) && !( 0 && 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])) ) { gimple_seq *lseq = seq; 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", 5647, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[1]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail929; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail929:; } return false; } static bool gimple_simplify_63 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; 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", 2020, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail930:; } return false; } static bool gimple_simplify_64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; 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", 1319, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail931:; return false; } static bool gimple_simplify_65 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1491, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail932:; return false; } static bool gimple_simplify_66 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1324, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail933:; return false; } static bool gimple_simplify_67 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1329, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail934:; return false; } static bool gimple_simplify_68 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4536 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4537, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail935:; } return false; } static bool gimple_simplify_69 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1337, __FILE__, __LINE__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail936:; return false; } static bool gimple_simplify_70 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 2073, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail937:; } return false; } static bool gimple_simplify_71 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 6268, __FILE__, __LINE__); { res_op->set_op (TAN, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail938:; } return false; } static bool gimple_simplify_72 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1196, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = build_all_ones_cst (TREE_TYPE (captures[0])); res_op->resimplify (lseq, valueize); return true; } next_after_fail939:; return false; } static bool gimple_simplify_73 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (eqne)) { /* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == EQ_EXPR ) { gimple_seq *lseq = seq; 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", 2323, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail940:; } else { /* #line 2324 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == NE_EXPR ) { gimple_seq *lseq = seq; 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", 2325, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail941:; } } return false; } static bool gimple_simplify_74 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; 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", 4840, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[1]), dconst0); res_op->resimplify (lseq, valueize); return true; } next_after_fail942:; } 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])) ) { gimple_seq *lseq = seq; 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", 4844, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = build_real (TREE_TYPE (captures[0]), dconst0); res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail943:; } 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]) ) { gimple_seq *lseq = seq; 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", 4849, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail944:; } 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]) ) { gimple_seq *lseq = seq; 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", 4855, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail945:; } 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) ) { gimple_seq *lseq = seq; 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", 4871, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail946:; } 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]) ) { gimple_seq *lseq = seq; 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", 4875, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail947:; } else { /* #line 4878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_trapping_math ) { gimple_seq *lseq = seq; 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", 4879, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail948:; } } } 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 ) { gimple_seq *lseq = seq; 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", 4886, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail949:; } else { gimple_seq *lseq = seq; 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", 4887, __FILE__, __LINE__); { res_op->set_op (GT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail950:; } } } 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 ) { gimple_seq *lseq = seq; 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", 4892, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail951:; } else { gimple_seq *lseq = seq; 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", 4893, __FILE__, __LINE__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail952:; } } } 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 ) { gimple_seq *lseq = seq; 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", 4900, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail953:; } else { gimple_seq *lseq = seq; 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", 4901, __FILE__, __LINE__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail954:; } } else { /* #line 4902 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (neg ) { gimple_seq *lseq = seq; 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", 4903, __FILE__, __LINE__); { res_op->set_op (UNGE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail955:; } else { gimple_seq *lseq = seq; 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", 4904, __FILE__, __LINE__); { res_op->set_op (UNLE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (TREE_TYPE (captures[0]), max); res_op->resimplify (lseq, valueize); return true; } next_after_fail956:; } } } } } } } } } } } } } } return false; } static bool gimple_simplify_75 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 1361, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail957; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail957:; return false; } static bool gimple_simplify_76 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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, 0 ); /* #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) ) { gimple_seq *lseq = seq; 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", 3181, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail958:; } else { /* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_gt (off0, off1) ) { gimple_seq *lseq = seq; 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", 3183, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail959:; } } } else { /* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_ge (off0, off1) ) { gimple_seq *lseq = seq; 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", 3185, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail960:; } else { /* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_lt (off0, off1) ) { gimple_seq *lseq = seq; 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", 3187, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail961:; } } } } } return false; } static bool gimple_simplify_77 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; 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", 1504, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[6]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail962; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail962:; } else { /* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1]) ) { gimple_seq *lseq = seq; 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", 1506, __FILE__, __LINE__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[3]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail963; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail963:; } } } return false; } static bool gimple_simplify_78 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 322, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail964; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail964:; } return false; } static bool gimple_simplify_79 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1291, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail965:; return false; } static bool gimple_simplify_80 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (bswap)) { gimple_seq *lseq = seq; 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", 3963, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail966:; return false; } static bool gimple_simplify_81 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1376, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail967:; return false; } static bool gimple_simplify_82 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (COPYSIGN_ALL)) { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0])) ) { gimple_seq *lseq = seq; 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", 348, __FILE__, __LINE__); { res_op->set_op (COPYSIGN_ALL, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail968; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail968:; } return false; } static bool gimple_simplify_83 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 330, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail969; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail969:; } return false; } static bool gimple_simplify_84 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 4667, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail970:; } else { /* #line 4668 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ic == ncmp ) { gimple_seq *lseq = seq; 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", 4669, __FILE__, __LINE__); { res_op->set_op (ncmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail971:; } } } return false; } static bool gimple_simplify_85 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; 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", 1386, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail972; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail972:; return false; } static bool gimple_simplify_86 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])); gimple_seq *lseq = seq; 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", 5820, __FILE__, __LINE__); { res_op->set_op (out, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[3]), wi::max_value (prec, sign) - wi::to_wide (captures[4])); res_op->resimplify (lseq, valueize); return true; } next_after_fail973:; } } return false; } static bool gimple_simplify_87 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) ) { gimple_seq *lseq = seq; 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", 4681, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail974:; } return false; } static bool gimple_simplify_88 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 322, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail975; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail975:; } return false; } static bool gimple_simplify_89 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1391, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail976:; return false; } static bool gimple_simplify_90 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 4699, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail977; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail977:; } return false; } static bool gimple_simplify_91 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; 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", 1990, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail978:; } return false; } static bool gimple_simplify_92 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 5672, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail979:; } else { /* #line 5673 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR ) { gimple_seq *lseq = seq; 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", 5674, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail980:; } else { /* #line 5675 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5676, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail981:; } else { /* #line 5677 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR ) { gimple_seq *lseq = seq; 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", 5678, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail982:; } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5682, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail983:; } else { /* #line 5683 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5684, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail984:; } else { /* #line 5685 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR ) { gimple_seq *lseq = seq; 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", 5686, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail985:; } else { /* #line 5687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR ) { gimple_seq *lseq = seq; 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", 5688, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail986:; } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5692, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail987:; } else { /* #line 5696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5697, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail988:; } } } 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 ) { gimple_seq *lseq = seq; 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", 5704, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail989:; } else { /* #line 5708 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR ) { gimple_seq *lseq = seq; 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", 5709, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail990:; } } } 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 ) { gimple_seq *lseq = seq; 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", 5728, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (st != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (st, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail991; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail991:; } else { /* #line 5729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cst == captures[2] && cmp == GT_EXPR ) { gimple_seq *lseq = seq; 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", 5730, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (st != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (st, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail992; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail992:; } else { /* #line 5731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5732, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail993; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail993:; } else { /* #line 5733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR ) { gimple_seq *lseq = seq; 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", 5734, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail994; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail994:; } } } } } } } } } } } } } return false; } static bool gimple_simplify_93 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 5249, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail995:; return false; } static bool gimple_simplify_94 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 6283, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_one_cst (type); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), TAN, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail996; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail996:; } return false; } static bool gimple_simplify_95 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4548, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail997:; } return false; } static bool gimple_simplify_96 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 2006, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail998:; } return false; } static bool gimple_simplify_97 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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) ) { gimple_seq *lseq = seq; 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", 2491, __FILE__, __LINE__); { tree tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail999:; } else { gimple_seq *lseq = seq; 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", 2492, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1000:; } } 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) ) { gimple_seq *lseq = seq; 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", 2497, __FILE__, __LINE__); { tree tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1001:; } else { gimple_seq *lseq = seq; 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", 2498, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1002:; } } 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)) ) { gimple_seq *lseq = seq; 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", 2503, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1003:; } 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) ) { gimple_seq *lseq = seq; 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", 2508, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1004:; } 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) ) { gimple_seq *lseq = seq; 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", 2512, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1005:; } } } } } } return false; } static bool gimple_simplify_98 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 5890, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[2]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_MUL_OVERFLOW, cpx, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1006; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1006; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (t); res_op->resimplify (lseq, valueize); return true; } next_after_fail1006:; } } return false; } static bool gimple_simplify_99 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #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); gimple_seq *lseq = seq; 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", 4572, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1007; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1007; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1007:; } } else { gimple_seq *lseq = seq; 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", 4573, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1008; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1008:; } } return false; } static bool gimple_simplify_100 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 428, __FILE__, __LINE__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_zero_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1009; res_op->ops[0] = _r1; } res_op->ops[1] = build_minus_one_cst (type); res_op->ops[2] = build_one_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1009:; } return false; } static bool gimple_simplify_101 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (! TYPE_UNSIGNED (type) && ! HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0]) ) { gimple_seq *lseq = seq; 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", 1625, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1010; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1010:; } return false; } static bool gimple_simplify_102 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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]) ) { gimple_seq *lseq = seq; 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", 5491, __FILE__, __LINE__); { res_op->set_op (ncmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1011; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1011:; } return false; } static bool gimple_simplify_103 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 5095, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == ORDERED_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1012:; } 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 ) { gimple_seq *lseq = seq; 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", 5098, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1013; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1013:; } 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 ) { gimple_seq *lseq = seq; 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", 5101, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type2 != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type2, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type2, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1014; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1014:; } 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 ) { gimple_seq *lseq = seq; 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", 5104, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1015:; } } } } } } } return false; } static bool gimple_simplify_104 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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); gimple_seq *lseq = seq; 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", 7550, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[3], _r2; _o2[0] = captures[0]; _o2[1] = size; _o2[2] = pos; gimple_match_op tem_op (res_op->cond.any_else (), BIT_FIELD_REF, elt_type, _o2[0], _o2[1], _o2[2]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1016; _o1[0] = _r2; } _o1[1] = elt; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, elt_type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1016; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1016:; } } } return false; } static bool gimple_simplify_105 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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]))) ) { gimple_seq *lseq = seq; 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", 5305, __FILE__, __LINE__); { res_op->set_op (scmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1017:; } return false; } static bool gimple_simplify_106 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7026, __FILE__, __LINE__); { res_op->set_op (CFN_FNMS, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1018:; } return false; } static bool gimple_simplify_107 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3542, __FILE__, __LINE__); { tree tem; tem = build_int_cst (type, 0); res_op->set_value (tem); return true; } next_after_fail1019:; } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3560, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; if (shift_type != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1020; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1020; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1020; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail1020:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3561, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail1021:; } } } } } } } } } } return false; } static bool gimple_simplify_108 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; 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", 2784, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1022; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1022:; } } } return false; } static bool gimple_simplify_109 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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) ) { gimple_seq *lseq = seq; 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", 7564, __FILE__, __LINE__); { tree tem; tem = elt; res_op->set_value (tem); return true; } next_after_fail1023:; } } return false; } static bool gimple_simplify_110 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1802, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1024; res_op->ops[0] = _r1; } res_op->ops[1] = build_each_one_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1024:; return false; } static bool gimple_simplify_111 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])); gimple_seq *lseq = seq; 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", 5562, __FILE__, __LINE__); { res_op->set_op (ncmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (stype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (stype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1025; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (stype); res_op->resimplify (lseq, valueize); return true; } next_after_fail1025:; } } return false; } static bool gimple_simplify_112 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]))); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; 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", 3082, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (t != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1026; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = wide_int_to_tree (t,c); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, t, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1026; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1026:; } } return false; } static bool gimple_simplify_113 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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) ) { gimple_seq *lseq = seq; 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", 5153, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == GT_EXPR || cmp == GE_EXPR || cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1027:; } else { /* #line 5155 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_compare (GT_EXPR, cst, &imax) ) { gimple_seq *lseq = seq; 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", 5156, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == LT_EXPR || cmp == LE_EXPR || cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1028:; } else { /* #line 5159 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cst_int_p ) { gimple_seq *lseq = seq; 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", 5160, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; gcc_assert (!overflow_p); res_op->ops[1] = wide_int_to_tree (itype, icst_val); res_op->resimplify (lseq, valueize); return true; } next_after_fail1029:; } else { /* #line 5166 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == EQ_EXPR || cmp == NE_EXPR ) { gimple_seq *lseq = seq; 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", 5167, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1030:; } else { { /* #line 5169 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ gcc_checking_assert (!overflow_p); gimple_seq *lseq = seq; 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", 5173, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (itype, icst_val); res_op->resimplify (lseq, valueize); return true; } next_after_fail1031:; } } } } } } } } } return false; } static bool gimple_simplify_114 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 591, __FILE__, __LINE__); { res_op->set_op (RSHIFT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1032; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_int_cst (integer_type_node, wi::exact_log2 (wi::to_wide (captures[2]))); res_op->resimplify (lseq, valueize); return true; } next_after_fail1032:; } return false; } static bool gimple_simplify_115 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 6129, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1033:; } return false; } static bool gimple_simplify_116 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (rotate)) { gimple_seq *lseq = seq; 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", 3327, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1034:; return false; } static bool gimple_simplify_117 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 4659, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1035:; } else { /* #line 4660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ic == ncmp ) { gimple_seq *lseq = seq; 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", 4661, __FILE__, __LINE__); { res_op->set_op (ncmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1036:; } } } } return false; } static bool gimple_simplify_118 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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)) ) { gimple_seq *lseq = seq; 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", 3123, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1037; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1037:; } return false; } static bool gimple_simplify_119 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 () ) { gimple_seq *lseq = seq; 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", 6516, __FILE__, __LINE__); { res_op->set_op (tos, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1038:; } return false; } static bool gimple_simplify_120 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6675, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; { tree _o1[1], _r1; _o1[0] = captures[4]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1039; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1039:; } else { { /* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!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", 6677, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1040; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1040; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1040; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1040:; } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6708, __FILE__, __LINE__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1041; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[4]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1041; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1041:; } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6741, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1042; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1042; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1042; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1042:; } } } } } } } } return false; } static bool gimple_simplify_121 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (maxmin)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!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", 3235, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), maxmin, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1043; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1043:; return false; } static bool gimple_simplify_122 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 () ) { gimple_seq *lseq = seq; 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", 6526, __FILE__, __LINE__); { res_op->set_op (tos, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1044:; } return false; } static bool gimple_simplify_123 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #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); gimple_seq *lseq = seq; 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", 4572, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1045; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1045; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1045:; } } else { gimple_seq *lseq = seq; 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", 4573, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1046; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1046:; } } return false; } static bool gimple_simplify_124 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[2]) ) { gimple_seq *lseq = seq; 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", 4794, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1047:; } return false; } static bool gimple_simplify_125 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; 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", 5481, __FILE__, __LINE__); { res_op->set_op (ncmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1048; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1048:; } return false; } static bool gimple_simplify_126 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 () ) { gimple_seq *lseq = seq; 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", 6413, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), tos, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1049; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1049:; } return false; } static bool gimple_simplify_127 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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) ) { gimple_seq *lseq = seq; 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", 4832, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1050; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1050; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1050:; } } } return false; } static bool gimple_simplify_128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; 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", 1420, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; _o2[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1051; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1051; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1051:; } return false; } static bool gimple_simplify_129 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (COPYSIGN_ALL)) { gimple_seq *lseq = seq; 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", 6228, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1052:; return false; } static bool gimple_simplify_130 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #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]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6776, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; _o2[0] = captures[2]; _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1053; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[5]; if (ntype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (ntype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, ntype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1053; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1053; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1053:; } } else { { /* #line 6777 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!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", 6778, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1054; } else _r3 = _o3[0]; _o2[0] = _r3; } { tree _o3[1], _r3; _o3[0] = captures[4]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1054; } else _r3 = _o3[0]; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1054; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[5]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1054; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1054; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1054:; } } } return false; } static bool gimple_simplify_131 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; 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", 1449, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1055; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1055; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1055:; } return false; } static bool gimple_simplify_132 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 2356, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1056:; return false; } static bool gimple_simplify_133 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 6297, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_one_cst (type); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), COS, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1057; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1057:; } } return false; } static bool gimple_simplify_134 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 3949 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type) ) { gimple_seq *lseq = seq; 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", 3950, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1058:; } return false; } static bool gimple_simplify_135 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; 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", 5939, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1059; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1059:; } return false; } static bool gimple_simplify_136 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 322, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1060; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1060:; } return false; } static bool gimple_simplify_137 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 330, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1061; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1061:; } return false; } static bool gimple_simplify_138 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1495, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1062:; return false; } static bool gimple_simplify_139 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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, 0 ); /* #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) ) { gimple_seq *lseq = seq; 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", 3181, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1063:; } else { /* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_gt (off0, off1) ) { gimple_seq *lseq = seq; 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", 3183, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1064:; } } } else { /* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_ge (off0, off1) ) { gimple_seq *lseq = seq; 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", 3185, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1065:; } else { /* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_lt (off0, off1) ) { gimple_seq *lseq = seq; 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", 3187, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1066:; } } } } } return false; } static bool gimple_simplify_140 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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, 0 ); /* #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)) ) { gimple_seq *lseq = seq; 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", 5600, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_eq (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail1067:; } else { /* #line 5601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5602, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_ne (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail1068:; } else { /* #line 5603 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5604, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_lt (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail1069:; } else { /* #line 5605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5606, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_le (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail1070:; } else { /* #line 5607 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5608, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_ge (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail1071:; } else { /* #line 5609 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1)) ) { gimple_seq *lseq = seq; 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", 5610, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (known_gt (off0, off1), type); res_op->set_value (tem); return true; } next_after_fail1072:; } } } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5614, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1073:; } else { /* #line 5615 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == NE_EXPR ) { gimple_seq *lseq = seq; 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", 5616, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1074:; } } } } } return false; } static bool gimple_simplify_141 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6318, __FILE__, __LINE__); { res_op->set_op (POW, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = build_one_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1075; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1075:; } } return false; } static bool gimple_simplify_142 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (mod)) { /* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!integer_zerop (captures[1]) ) { gimple_seq *lseq = seq; 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", 621, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1076:; } return false; } static bool gimple_simplify_143 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; 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", 4476, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1077:; } return false; } static bool gimple_simplify_144 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; 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", 5624, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (neeq != EQ_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1078:; } return false; } static bool gimple_simplify_145 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (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); gimple_seq *lseq = seq; 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", 4054, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1079; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = nst; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, utype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1079; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1079; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1079:; } } return false; } static bool gimple_simplify_146 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 3101, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1080:; return false; } static bool gimple_simplify_147 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; 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", 1797, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_each_one_cst (TREE_TYPE (captures[0])); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1081; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1081:; } return false; } static bool gimple_simplify_148 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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) ) { gimple_seq *lseq = seq; 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", 387, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1082; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1082:; } else { gimple_seq *lseq = seq; 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", 388, __FILE__, __LINE__); { res_op->set_op (RSHIFT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1083:; } } return false; } static bool gimple_simplify_149 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (comb)) { gimple_seq *lseq = seq; 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", 3271, __FILE__, __LINE__); { res_op->set_op (comb, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), cmp, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1084; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), cmp, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1084; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1084:; return false; } static bool gimple_simplify_150 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; 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", 7022, __FILE__, __LINE__); { res_op->set_op (CFN_FNMS, type, 3); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1085:; } } return false; } static bool gimple_simplify_151 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]) || !single_use (captures[4]))) lseq = NULL; 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", 1301, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1086; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1086:; return false; } static bool gimple_simplify_152 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; 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", 1817, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1087; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1087:; } return false; } static bool gimple_simplify_153 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (POW)) { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!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", 6323, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1088; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), POW, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1088; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1088:; } return false; } static bool gimple_simplify_154 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; 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", 1832, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1089; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1089:; } return false; } static bool gimple_simplify_155 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 6057, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), logs, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1090; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1090:; } return false; } static bool gimple_simplify_156 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; 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", 2674, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1091; _o1[0] = _r2; } _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), outer_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1091; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1091; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1091:; } } 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])) ) { gimple_seq *lseq = seq; 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", 2677, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; { tree _o3[1], _r3; _o3[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, TREE_TYPE (_o2[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1092; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), outer_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1092; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1092; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1092:; } 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) ) { gimple_seq *lseq = seq; 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", 2681, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = cst; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1093:; } } } } } } } return false; } static bool gimple_simplify_157 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 2091, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1094:; } return false; } static bool gimple_simplify_158 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]) || !single_use (captures[4]))) lseq = NULL; 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", 1311, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1095; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1095:; return false; } static bool gimple_simplify_159 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7085, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (stype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (stype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1096; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (stype); res_op->resimplify (lseq, valueize); return true; } next_after_fail1096:; } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7098, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_one_cst (type0); res_op->resimplify (lseq, valueize); return true; } next_after_fail1097:; } } } return false; } static bool gimple_simplify_160 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 1003, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[2]; if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1098; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1098; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1098:; } return false; } static bool gimple_simplify_161 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 2742 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TREE_CODE (TREE_TYPE (captures[2])) == INTEGER_TYPE && TREE_CODE (type) == INTEGER_TYPE && TYPE_PRECISION (type) > TYPE_PRECISION (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (type) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 2748, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1099; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[3]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1099; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1099; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1099:; } } } return false; } static bool gimple_simplify_162 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; 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", 4608, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[3], _r2; _o2[0] = captures[2]; { tree _o3[1], _r3; _o3[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1100; _o2[1] = _r3; } _o2[2] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1100; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1100; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1100:; } return false; } static bool gimple_simplify_163 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 2341, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1101:; return false; } static bool gimple_simplify_164 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4541, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1102:; } return false; } static bool gimple_simplify_165 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; 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", 1319, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1103:; return false; } static bool gimple_simplify_166 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 2472, __FILE__, __LINE__); { tree tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1104:; } else { /* #line 2473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == NE_EXPR && val ) { gimple_seq *lseq = seq; 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", 2473, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1105:; } else { /* #line 2474 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == NE_EXPR && !val ) { gimple_seq *lseq = seq; 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", 2474, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1106:; } } } } return false; } static bool gimple_simplify_167 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; 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", 3281, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1107:; return false; } static bool gimple_simplify_168 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 257, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_zero_cst (TREE_TYPE(captures[0])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1108:; } return false; } static bool gimple_simplify_169 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 1483, __FILE__, __LINE__); { res_op->set_op (rop, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1109; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1109; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[2]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1109; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1109; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1109:; } return false; } static bool gimple_simplify_170 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 || 1 ) && ( TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type) || ( 1 && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type)) || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT || !type_has_mode_precision_p (type) || ( 1 && TREE_CODE (captures[3]) != INTEGER_CST && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && single_use (captures[0]) && single_use (captures[2]))) ) { gimple_seq *lseq = seq; 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", 1693, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[3]; if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1110; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1110; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1110:; } return false; } static bool gimple_simplify_171 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (fmas)) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7018, __FILE__, __LINE__); { res_op->set_op (CFN_FNMS, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1111:; } return false; } static bool gimple_simplify_172 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]))) && ( 1 || !TREE_SIDE_EFFECTS (captures[1])) ) { gimple_seq *lseq = seq; 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", 3320, __FILE__, __LINE__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[4]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), cmp, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1112; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->ops[2] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1112:; } return false; } static bool gimple_simplify_173 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4547 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4548, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1113:; } return false; } static bool gimple_simplify_174 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!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", 1838, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1114; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1114; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1114:; } return false; } static bool gimple_simplify_175 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 5833, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1115:; } return false; } static bool gimple_simplify_176 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (uncond_op), const combined_fn ARG_UNUSED (cond_op)) { { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7424 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; 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", 7427, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[5], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; _o1[3] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1116; _o1[4] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1116; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1116:; } } return false; } static bool gimple_simplify_177 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!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", 3109, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1117:; return false; } static bool gimple_simplify_178 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1342, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1118:; return false; } static bool gimple_simplify_179 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7054, __FILE__, __LINE__); { res_op->set_op (CFN_FMS, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1119:; } return false; } static bool gimple_simplify_180 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1063, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1120:; return false; } static bool gimple_simplify_181 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shiftrotate)) { gimple_seq *lseq = seq; 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", 3377, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1121:; return false; } static bool gimple_simplify_182 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 5672, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1122:; } else { /* #line 5673 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR ) { gimple_seq *lseq = seq; 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", 5674, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1123:; } else { /* #line 5675 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5676, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1124:; } else { /* #line 5677 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR ) { gimple_seq *lseq = seq; 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", 5678, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1125:; } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5682, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1126:; } else { /* #line 5683 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5684, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1127:; } else { /* #line 5685 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GE_EXPR ) { gimple_seq *lseq = seq; 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", 5686, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1128:; } else { /* #line 5687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR ) { gimple_seq *lseq = seq; 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", 5688, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1129:; } } } } } 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 ) { gimple_seq *lseq = seq; 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", 5692, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1130:; } else { /* #line 5696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5697, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1131:; } } } 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 ) { gimple_seq *lseq = seq; 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", 5704, __FILE__, __LINE__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1132:; } else { /* #line 5708 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR ) { gimple_seq *lseq = seq; 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", 5709, __FILE__, __LINE__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1133:; } } } 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 ) { gimple_seq *lseq = seq; 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", 5728, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (st != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (st, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1134; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail1134:; } else { /* #line 5729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cst == captures[2] && cmp == GT_EXPR ) { gimple_seq *lseq = seq; 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", 5730, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (st != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (st, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1135; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail1135:; } else { /* #line 5731 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LE_EXPR ) { gimple_seq *lseq = seq; 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", 5732, __FILE__, __LINE__); { res_op->set_op (GE_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1136; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail1136:; } else { /* #line 5733 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR ) { gimple_seq *lseq = seq; 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", 5734, __FILE__, __LINE__); { res_op->set_op (LT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1137; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (st); res_op->resimplify (lseq, valueize); return true; } next_after_fail1137:; } } } } } } } } } } } } } return false; } static bool gimple_simplify_183 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shift)) { /* #line 3393 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) ) { { /* #line 3394 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ int width = ceil_log2 (element_precision (TREE_TYPE (captures[0]))); int prec = TYPE_PRECISION (TREE_TYPE (captures[1])); /* #line 3398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((get_nonzero_bits (captures[1]) & wi::mask (width, false, prec)) == 0 ) { gimple_seq *lseq = seq; 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", 3399, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1138:; } } } return false; } static bool gimple_simplify_184 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { { /* #line 7248 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ unsigned prec = TYPE_PRECISION (type); int shift = (64 - prec) & 63; unsigned HOST_WIDE_INT c1 = HOST_WIDE_INT_UC (0x0101010101010101) >> shift; unsigned HOST_WIDE_INT c2 = HOST_WIDE_INT_UC (0x0F0F0F0F0F0F0F0F) >> shift; unsigned HOST_WIDE_INT c3 = HOST_WIDE_INT_UC (0x3333333333333333) >> shift; unsigned HOST_WIDE_INT c4 = HOST_WIDE_INT_UC (0x5555555555555555) >> shift; /* #line 7259 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (prec >= 16 && prec <= 64 && pow2p_hwi (prec) && TYPE_UNSIGNED (type) && integer_onep (captures[5]) && wi::to_widest (captures[7]) == 2 && wi::to_widest (captures[1]) == 4 && wi::to_widest (captures[11]) == prec - 8 && tree_to_uhwi (captures[10]) == c1 && tree_to_uhwi (captures[9]) == c2 && tree_to_uhwi (captures[8]) == c3 && tree_to_uhwi (captures[3]) == c3 && tree_to_uhwi (captures[6]) == c4 ) { /* #line 7272 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (direct_internal_fn_supported_p (IFN_POPCOUNT, type, OPTIMIZE_FOR_BOTH) ) { gimple_seq *lseq = seq; 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", 7274, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_POPCOUNT, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1139; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1139:; } else { { /* #line 7277 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree half_type = NULL_TREE; opt_machine_mode m = mode_for_size ((prec + 1) / 2, MODE_INT, 1); int half_prec = 8; if (m.exists () && m.require () != TYPE_MODE (type)) { half_prec = GET_MODE_PRECISION (as_a (m)); half_type = build_nonstandard_integer_type (half_prec, 1); } gcc_assert (half_prec > 2); /* #line 7289 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (half_type != NULL_TREE && direct_internal_fn_supported_p (IFN_POPCOUNT, half_type, OPTIMIZE_FOR_BOTH) ) { gimple_seq *lseq = seq; 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", 7292, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = captures[4]; if (half_type != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (half_type, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, half_type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1140; } else _r3 = _o3[0]; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_POPCOUNT, half_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1140; _o1[0] = _r2; } { tree _o2[1], _r2; { tree _o3[1], _r3; { tree _o4[2], _r4; _o4[0] = captures[4]; _o4[1] = build_int_cst (integer_type_node, half_prec); gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]); tem_op.resimplify (lseq, valueize); _r4 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r4) goto next_after_fail1140; _o3[0] = _r4; } if (half_type != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (half_type, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, half_type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1140; } else _r3 = _o3[0]; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_POPCOUNT, half_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1140; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1140; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1140:; } } } } } return false; } static bool gimple_simplify_185 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 1137, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = pmop[0]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1141; } else _r3 = _o3[0]; _o2[0] = _r3; } { tree _o3[1], _r3; _o3[0] = pmop[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1141; } else _r3 = _o3[0]; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1141; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[5]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1141; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1141; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1141:; } } return false; } static bool gimple_simplify_186 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4540 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 4541, __FILE__, __LINE__); { tree tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1142:; } return false; } static bool gimple_simplify_187 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; 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", 1850, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1143; _o1[0] = _r2; } _o1[1] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1143; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1143:; } return false; } static bool gimple_simplify_188 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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); gimple_seq *lseq = seq; 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", 731, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1144; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = build_one_cst (utype); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1144; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1144; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1144:; } } return false; } static bool gimple_simplify_189 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; 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", 5259, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1145:; } return false; } static bool gimple_simplify_190 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (eqne)) { /* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == EQ_EXPR ) { gimple_seq *lseq = seq; 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", 2311, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1146:; } else { /* #line 2312 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == NE_EXPR ) { gimple_seq *lseq = seq; 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", 2313, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1147:; } } return false; } static bool gimple_simplify_191 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; 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", 1867, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1148:; } return false; } static bool gimple_simplify_192 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (fmas)) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7015, __FILE__, __LINE__); { res_op->set_op (CFN_FMS, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1149:; } return false; } static bool gimple_simplify_193 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6675, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; { tree _o1[1], _r1; _o1[0] = captures[4]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1150; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1150:; } else { { /* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!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", 6677, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1151; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1151; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1151; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1151:; } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6708, __FILE__, __LINE__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1152; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[4]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1152; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1152:; } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 6741, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1153; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1153; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1153; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1153:; } } } } } } } } return false; } static bool gimple_simplify_194 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; 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", 1430, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1154; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[1]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1154; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1154; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1154:; } return false; } static bool gimple_simplify_195 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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]))) ) { gimple_seq *lseq = seq; 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", 3252, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1155:; } 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]))) ) { gimple_seq *lseq = seq; 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", 3255, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1156:; } } return false; } static bool gimple_simplify_196 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 4622, __FILE__, __LINE__); { res_op->set_op (acmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_uniform_cst (TREE_TYPE (captures[1]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1157:; } } return false; } static bool gimple_simplify_197 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (POW)) { gimple_seq *lseq = seq; 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", 6213, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1158:; return false; } static bool gimple_simplify_198 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 1916, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1159:; } 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])); gimple_seq *lseq = seq; 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", 1922, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[3]; if (utype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1160; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; if (utype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1160; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1160:; } } } } 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])) ) { gimple_seq *lseq = seq; 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", 1925, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1161:; } else { { /* #line 1926 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[1])); gimple_seq *lseq = seq; 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", 1930, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (utype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1162; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[3]; if (utype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1162; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1162:; } } } } } return false; } static bool gimple_simplify_199 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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) ) { gimple_seq *lseq = seq; 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", 336, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1163:; } return false; } static bool gimple_simplify_200 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 1553, __FILE__, __LINE__); { res_op->set_op (ABSU_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1164:; } else { gimple_seq *lseq = seq; 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", 1554, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1165:; } } return false; } static bool gimple_simplify_201 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 322, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1166; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1166:; } return false; } static bool gimple_simplify_202 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; 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", 2406, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1167:; } else { /* #line 2407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == EQ_EXPR && !val ) { gimple_seq *lseq = seq; 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", 2407, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1168:; } else { /* #line 2408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == NE_EXPR && !val ) { gimple_seq *lseq = seq; 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", 2408, __FILE__, __LINE__); { tree tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1169:; } } } } return false; } static bool gimple_simplify_203 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (POW)) { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!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", 6307, __FILE__, __LINE__); { res_op->set_op (POW, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1170; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1170:; } return false; } static bool gimple_simplify_204 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; 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", 330, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1171; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1171:; } return false; } static bool gimple_simplify_205 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1068, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1172:; return false; } static bool gimple_simplify_206 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 847, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1173:; } } return false; } static bool gimple_simplify_207 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (FMAX_ALL)) { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_finite_math_only ) { gimple_seq *lseq = seq; 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", 3219, __FILE__, __LINE__); { res_op->set_op (MAX_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1174:; } return false; } static bool gimple_simplify_208 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 1785, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (op == NE_EXPR ? true : false, type); res_op->set_value (tem); return true; } next_after_fail1175:; return false; } static bool gimple_simplify_209 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])); gimple_seq *lseq = seq; 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", 656, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1176; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[1]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1176; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), mod, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1176; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; if (utype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1176; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1176:; } } return false; } static bool gimple_simplify_210 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (pows), const combined_fn ARG_UNUSED (exps), const combined_fn ARG_UNUSED (logs), const combined_fn ARG_UNUSED (exp2s), const combined_fn ARG_UNUSED (log2s)) { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6070 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[0]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[0])) && canonicalize_math_after_vectorization_p () ) { { /* #line 6079 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ const REAL_VALUE_TYPE *const value = TREE_REAL_CST_PTR (captures[0]); bool use_exp2 = false; if (targetm.libc_has_function (function_c99_misc, TREE_TYPE (captures[0])) && value->cl == rvc_normal) { REAL_VALUE_TYPE frac_rvt = *value; SET_REAL_EXP (&frac_rvt, 1); if (real_equal (&frac_rvt, &dconst1)) use_exp2 = true; } /* #line 6091 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!use_exp2 ) { /* #line 6092 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (optimize_pow_to_exp (captures[0], captures[1]) ) { gimple_seq *lseq = seq; 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", 6093, __FILE__, __LINE__); { res_op->set_op (exps, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), logs, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1177; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1177; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1177:; } } else { gimple_seq *lseq = seq; 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", 6094, __FILE__, __LINE__); { res_op->set_op (exp2s, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), log2s, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1178; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1178; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1178:; } } } } return false; } static bool gimple_simplify_211 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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); gimple_seq *lseq = seq; 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", 2885, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1179; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[2]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1179; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1179; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1179:; } } 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])))) ) { gimple_seq *lseq = seq; 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", 2900, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1180; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1180; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1180:; } } } } return false; } static bool gimple_simplify_212 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (POW)) { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!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", 6302, __FILE__, __LINE__); { res_op->set_op (POW, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1181; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1181:; } return false; } static bool gimple_simplify_213 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7040, __FILE__, __LINE__); { res_op->set_op (CFN_FMA, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1182:; } return false; } static bool gimple_simplify_214 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shiftrotate)) { gimple_seq *lseq = seq; 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", 3374, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1183:; return false; } static bool gimple_simplify_215 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 2590, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1184; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1184:; } else { gimple_seq *lseq = seq; 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", 2591, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1185; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1185:; } } } return false; } static bool gimple_simplify_216 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; 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", 354, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1186:; return false; } static bool gimple_simplify_217 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]))) ) { gimple_seq *lseq = seq; 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", 5900, __FILE__, __LINE__); { res_op->set_op (ovf, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1187:; } return false; } static bool gimple_simplify_218 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 3594, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; if (shift_type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1188; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1188; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1188:; } } return false; } static bool gimple_simplify_219 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 1648, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, ntype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1189; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1189; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1189:; } else { gimple_seq *lseq = seq; 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", 1649, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (ntype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (ntype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, ntype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1190; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1190; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1190:; } } } return false; } static bool gimple_simplify_220 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (div)) { /* #line 403 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!TYPE_UNSIGNED (type) ) { gimple_seq *lseq = seq; 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", 404, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1191:; } return false; } static bool gimple_simplify_221 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #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 ) { gimple_seq *lseq = seq; 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", 5515, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; _o2[1] = shifter; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1192; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1192; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1192:; } else { gimple_seq *lseq = seq; 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", 5516, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[2], _r3; _o3[0] = captures[0]; _o3[1] = shifter; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1193; _o2[0] = _r3; } if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1193; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1193; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1193:; } } } return false; } static bool gimple_simplify_222 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7157, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (op == EQ_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1194:; } } else { /* #line 7158 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!zero_res || zero_val < 0 || zero_val >= prec ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7159, __FILE__, __LINE__); { res_op->set_op (op, type, 2); { 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)); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1195; res_op->ops[0] = _r1; } res_op->ops[1] = wide_int_to_tree (type0, wi::shifted_mask (tree_to_uhwi (captures[2]), 1, false, prec)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1195:; } } } return false; } static bool gimple_simplify_223 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!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", 1838, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1196; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1196; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1196:; } return false; } static bool gimple_simplify_224 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; 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", 4711, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1197:; } 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 ) { gimple_seq *lseq = seq; 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", 4717, __FILE__, __LINE__); { res_op->set_op (scmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1198:; } else { gimple_seq *lseq = seq; 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", 4718, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1199:; } } } return false; } static bool gimple_simplify_225 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 1037, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1200:; return false; } static bool gimple_simplify_226 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; 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", 2073, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1201:; } return false; } static bool gimple_simplify_227 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; 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", 1504, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[6]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1202; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1202:; } else { /* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1]) ) { gimple_seq *lseq = seq; 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", 1506, __FILE__, __LINE__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[3]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1203; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1203:; } } } return false; } static bool gimple_simplify_228 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; 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", 7171, __FILE__, __LINE__); { res_op->set_op (POPCOUNT, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1204; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1204:; } return false; } static bool gimple_simplify_229 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; 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", 2291, __FILE__, __LINE__); { tree tem; tem = wide_int_to_tree (type, (wi::to_wide (captures[1]) & (bitpos / BITS_PER_UNIT))); res_op->set_value (tem); return true; } next_after_fail1205:; } } } return false; } static bool gimple_simplify_230 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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]))) && ( 1 || !TREE_SIDE_EFFECTS (captures[1])) ) { gimple_seq *lseq = seq; 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", 3308, __FILE__, __LINE__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[4]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), cmp, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1206; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->ops[2] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1206:; } return false; } static bool gimple_simplify_231 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (maxmin)) { /* #line 6501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (optimize && FLOAT_TYPE_P (type) && FLOAT_TYPE_P (TREE_TYPE (captures[0])) && types_match (type, TREE_TYPE (captures[1])) && types_match (type, TREE_TYPE (captures[2])) && element_precision (type) < element_precision (TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; 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", 6507, __FILE__, __LINE__); { res_op->set_op (maxmin, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1207:; } return false; } static bool gimple_simplify_232 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), 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])) ) { gimple_seq *lseq = seq; 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", 3571, __FILE__, __LINE__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[0]), wi::exact_log2 (wi::to_wide (captures[1]))); res_op->resimplify (lseq, valueize); return true; } next_after_fail1208:; } return false; } static bool gimple_simplify_233 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; 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", 1715, __FILE__, __LINE__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1209:; return false; } static bool gimple_simplify_234 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; 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", 7205, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1210:; } 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])); gimple_seq *lseq = seq; 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", 7208, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1211; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = build_int_cst (integer_type_node, wi::ctz (nz)); gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, utype, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1211; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1211:; } } } } return false; } static bool gimple_simplify_235 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!canonicalize_math_p () ) { gimple_seq *lseq = seq; 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", 1857, __FILE__, __LINE__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), cmp, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1212; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->ops[2] = build_zero_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1212:; } return false; } static bool gimple_simplify_236 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; 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", 1720, __FILE__, __LINE__); { res_op->set_op (BIT_IOR_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[4]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1213; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1213:; return false; } static bool gimple_simplify_237 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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 ) { gimple_seq *lseq = seq; 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", 5181, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1214:; } 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 ) { gimple_seq *lseq = seq; 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", 5190, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1215:; } else { gimple_seq *lseq = seq; 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", 5191, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[0]), prod); res_op->resimplify (lseq, valueize); return true; } next_after_fail1216:; } } } } } return false; } static bool gimple_simplify_238 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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) ) { gimple_seq *lseq = seq; 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", 7459, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { 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]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1217; _o1[4] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1217; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1217:; } } return false; } static bool gimple_simplify_239 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 5203, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (wi::lt_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (cmp == LT_EXPR || cmp == LE_EXPR), type); res_op->set_value (tem); return true; } next_after_fail1218:; } else { gimple_seq *lseq = seq; 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", 5206, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[0]), prod); res_op->resimplify (lseq, valueize); return true; } next_after_fail1219:; } } } return false; } static bool gimple_simplify_240 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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 ) { gimple_seq *lseq = seq; 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", 5576, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; _o2[1] = build_int_cst (integer_type_node, shift); gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1220; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1220; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1220:; } else { gimple_seq *lseq = seq; 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", 5581, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1221; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1221:; } } } return false; } static bool gimple_simplify_241 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; 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", 6790, __FILE__, __LINE__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ext, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1222; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1222:; } return false; } static bool gimple_simplify_242 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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) ) { gimple_seq *lseq = seq; 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", 2266, __FILE__, __LINE__); { res_op->set_op (neeq, type, 2); { tree _o1[2], _r1; _o1[0] = build_int_cst_type (inner_type, diff); _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1223; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1223:; } } return false; } static bool gimple_simplify_243 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 687 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type) ) { gimple_seq *lseq = seq; 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", 688, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1224; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1224:; } return false; } static bool gimple_simplify_244 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #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]) ) { gimple_seq *lseq = seq; 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", 4768, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1225:; } return false; } static bool gimple_simplify_245 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; 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", 879, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1226:; return false; } static bool gimple_simplify_246 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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])) ) { gimple_seq *lseq = seq; 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", 1512, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1227; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1227; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1227:; } return false; } static bool gimple_simplify_247 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (eqne)) { /* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == EQ_EXPR ) { gimple_seq *lseq = seq; 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", 2323, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1228:; } else { /* #line 2324 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == NE_EXPR ) { gimple_seq *lseq = seq; 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", 2325, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1229:; } } return false; } static bool gimple_simplify_248 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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) ) { gimple_seq *lseq = seq; 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", 7465, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { 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]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1230; _o1[4] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1230; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1230:; } } return false; } static bool gimple_simplify_249 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) && !TYPE_UNSIGNED (type) ) { gimple_seq *lseq = seq; 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", 4560, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1231:; } return false; } static bool gimple_simplify_250 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 2336, __FILE__, __LINE__); { tree tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1232:; return false; } static bool gimple_simplify_251 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 5397, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1233:; } else { gimple_seq *lseq = seq; 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", 5398, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1234:; } } 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) ) { gimple_seq *lseq = seq; 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", 5405, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1235:; } else { /* #line 5406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_eq (off, 0) ) { gimple_seq *lseq = seq; 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", 5407, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == EQ_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1236:; } } } } } } return false; } static bool gimple_simplify_252 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; 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", 2346, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1237:; return false; } static bool gimple_simplify_253 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7134, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == EQ_EXPR ? true : false, type); res_op->set_value (tem); return true; } next_after_fail1238:; } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7137, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == EQ_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1239:; } } else { /* #line 7138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ok && (!zero_res || zero_val < 0 || zero_val >= prec) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 7139, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = wide_int_to_tree (type0, wi::mask (val, false, prec)); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1240; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (type0); res_op->resimplify (lseq, valueize); return true; } next_after_fail1240:; } } } } return false; } static bool gimple_simplify_254 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; 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", 2179, __FILE__, __LINE__); { res_op->set_op (outer_op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (type, cst_emit); res_op->resimplify (lseq, valueize); return true; } next_after_fail1241:; } else { /* #line 2180 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!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", 2181, __FILE__, __LINE__); { res_op->set_op (inner_op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (type, cst_emit); res_op->resimplify (lseq, valueize); return true; } next_after_fail1242:; } } } return false; } static bool gimple_simplify_255 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; 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", 2138, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1243:; } return false; } static bool gimple_simplify_256 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (fmas)) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; 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", 7012, __FILE__, __LINE__); { res_op->set_op (CFN_FNMA, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1244:; } return false; } static bool gimple_simplify_257 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1245; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; if (shift_type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1245; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1245; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1245:; } } return false; } static bool gimple_simplify_258 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1246; 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__); { res_op->set_op (out, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1246; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1246:; } return false; } static bool gimple_simplify_259 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos)) { /* #line 6486 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && optimize && FLOAT_TYPE_P (type) && FLOAT_TYPE_P (TREE_TYPE (captures[0])) && types_match (type, TREE_TYPE (captures[1])) && types_match (type, TREE_TYPE (captures[2])) && types_match (type, TREE_TYPE (captures[3])) && TYPE_PRECISION (type) < TYPE_PRECISION (TREE_TYPE (captures[0])) && direct_internal_fn_supported_p (as_internal_fn (tos), type, OPTIMIZE_FOR_BOTH) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1247; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6496, __FILE__, __LINE__); { res_op->set_op (tos, type, 3); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1247:; } return false; } static bool gimple_simplify_260 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop), const combined_fn ARG_UNUSED (bswap)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1248; 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__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), bswap, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1248; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1248:; return false; } static bool gimple_simplify_261 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1249; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2585, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1249:; } } return false; } static bool gimple_simplify_262 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos)) { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (optimize && types_match (type, TREE_TYPE (captures[0])) && direct_internal_fn_supported_p (as_internal_fn (tos), type, OPTIMIZE_FOR_BOTH) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1250; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6466, __FILE__, __LINE__); { res_op->set_op (tos, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1250:; } return false; } static bool gimple_simplify_263 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1251; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1251; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1251:; } return false; } static bool gimple_simplify_264 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1252; 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__); { res_op->set_op (out, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1252; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1252:; } return false; } static bool gimple_simplify_265 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1253; 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__); { res_op->set_op (out, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1253; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1253:; } return false; } static bool gimple_simplify_266 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (mod)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1254; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1254:; return false; } static bool gimple_simplify_267 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1255; 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 tem; tem = build_one_cst (type); res_op->set_value (tem); return true; } next_after_fail1255:; } return false; } static bool gimple_simplify_268 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1256; 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 tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1256:; } else { /* #line 2473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == NE_EXPR && val ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1257; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1257:; } else { /* #line 2474 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == NE_EXPR && !val ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1258; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1258:; } } } } return false; } static bool gimple_simplify_269 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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]); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1259; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (t1 != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1259; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[1]; if (t1 != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1259; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1259; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1259:; } } } return false; } static bool gimple_simplify_270 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1260; 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 tem; tem = build_minus_one_cst (type); res_op->set_value (tem); return true; } next_after_fail1260:; } return false; } static bool gimple_simplify_271 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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]))))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1261; 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__); { res_op->set_op (TRUNC_MOD_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1261; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1261:; } return false; } static bool gimple_simplify_272 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (div), const enum tree_code ARG_UNUSED (mod)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1262; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1262:; return false; } static bool gimple_simplify_273 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1263; 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__); { res_op->set_op (POINTER_DIFF_EXPR, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1263:; } } } return false; } static bool gimple_simplify_274 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1596 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1264; 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__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1264; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1264:; } return false; } static bool gimple_simplify_275 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1265; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1265:; } return false; } static bool gimple_simplify_276 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7729 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1266; 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__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[3], _r2; _o2[0] = captures[2]; _o2[1] = captures[2]; _o2[2] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1266; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1266; res_op->ops[0] = _r1; } res_op->ops[1] = captures[5]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1266:; } return false; } static bool gimple_simplify_277 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1267; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1267:; } return false; } static bool gimple_simplify_278 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1268; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1268:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1269; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_int_cst (TREE_TYPE (captures[1]), c2 - c1); res_op->resimplify (lseq, valueize); return true; } next_after_fail1269:; } } } return false; } static bool gimple_simplify_279 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1270; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1270:; return false; } static bool gimple_simplify_280 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1271; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1271; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1271:; } return false; } static bool gimple_simplify_281 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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, 0 ); /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1272; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1272:; } else { /* #line 3182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_gt (off0, off1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1273; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1273:; } } } else { /* #line 3184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_ge (off0, off1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1274; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1274:; } else { /* #line 3186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (known_lt (off0, off1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1275; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1275:; } } } } } return false; } static bool gimple_simplify_282 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1276; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1276; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1276:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1277; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2951, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1277; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); if (!maybe_push_res_to_seq (res_op, NULL)) goto next_after_fail1277; return true; } next_after_fail1277:; } } } return false; } static bool gimple_simplify_283 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 || 1 ) && ( TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type) || ( 1 && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type)) || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT || !type_has_mode_precision_p (type) || ( 1 && TREE_CODE (captures[3]) != INTEGER_CST && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && single_use (captures[0]) && single_use (captures[2]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1278; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[3]; if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1278; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1278; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1278:; } return false; } static bool gimple_simplify_284 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1279; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1279:; } } } return false; } static bool gimple_simplify_285 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1280; 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__); { res_op->set_op (op, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = wide_int_to_tree (from_type, real_c1); gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1280; res_op->ops[0] = _r1; } res_op->ops[1] = wide_int_to_tree (from_type, c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail1280:; } else { /* #line 4459 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code == MIN_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1281; 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__); { res_op->set_op (op, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = wide_int_to_tree (from_type, real_c1); gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1281; res_op->ops[0] = _r1; } res_op->ops[1] = wide_int_to_tree (from_type, c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail1281:; } } } } } return false; } static bool gimple_simplify_286 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1827 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1282; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1282; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1282; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1282:; } return false; } static bool gimple_simplify_287 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1283; 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__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[2]; if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1283; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1283; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1283:; } return false; } static bool gimple_simplify_288 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1284; 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__); { res_op->set_op (scmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1284:; } } } return false; } static bool gimple_simplify_289 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (mod)) { /* #line 635 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!integer_zerop (captures[0]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1285; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1285:; } return false; } static bool gimple_simplify_290 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (rotate), const enum tree_code ARG_UNUSED (invrot), const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1286; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1286:; return false; } static bool gimple_simplify_291 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1287; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1287; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1287:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1288; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 388, __FILE__, __LINE__); { res_op->set_op (RSHIFT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1288:; } } return false; } static bool gimple_simplify_292 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1289; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1289; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = build_int_cst (integer_type_node, shift); gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1289; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1289:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1290; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; _o2[1] = build_int_cst (integer_type_node, -shift); gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1290; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1290; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1290:; } } } return false; } static bool gimple_simplify_293 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1291; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[3])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1291:; } return false; } static bool gimple_simplify_294 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1292; 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__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1292; _o1[0] = _r2; } _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1292; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1292:; return false; } static bool gimple_simplify_295 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1293; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1293:; } } return false; } static bool gimple_simplify_296 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (mod)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1294; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1294:; return false; } static bool gimple_simplify_297 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1295; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = tem; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1295:; } } } return false; } static bool gimple_simplify_298 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (eqne)) { /* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == EQ_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1296; 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 tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1296:; } else { /* #line 2312 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == NE_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1297; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1297:; } } return false; } static bool gimple_simplify_299 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1298; 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__); { res_op->set_op (ABSU_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1298:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1299; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1299:; } } return false; } static bool gimple_simplify_300 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1300; 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__); { res_op->set_op (ocmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1300:; } return false; } static bool gimple_simplify_301 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1301; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1301; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1301:; } return false; } static bool gimple_simplify_302 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1302; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = build_one_cst (type); _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1302; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1302:; } } } return false; } static bool gimple_simplify_303 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1303; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; if (rotate_type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (rotate_type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, rotate_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1303; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1303; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1303:; } } return false; } static bool gimple_simplify_304 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 1167 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1304; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1168, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == LT_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1304:; } return false; } static bool gimple_simplify_305 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1305; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1305:; return false; } static bool gimple_simplify_306 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1306; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1306:; return false; } static bool gimple_simplify_307 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1307; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1307:; } else { { /* #line 757 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ bool overflowed = true; value_range vr0, vr1; if (INTEGRAL_TYPE_P (type) && get_global_range_query ()->range_of_expr (vr0, captures[0]) && get_global_range_query ()->range_of_expr (vr1, captures[1]) && vr0.kind () == VR_RANGE && vr1.kind () == VR_RANGE) { wide_int wmin0 = vr0.lower_bound (); wide_int wmax0 = vr0.upper_bound (); wide_int wmin1 = vr1.lower_bound (); wide_int wmax1 = vr1.upper_bound (); wi::overflow_type min_ovf, max_ovf; wi::mul (wmin0, wmin1, TYPE_SIGN (type), &min_ovf); wi::mul (wmax0, wmax1, TYPE_SIGN (type), &max_ovf); if (min_ovf == wi::OVF_NONE && max_ovf == wi::OVF_NONE) { wi::mul (wmin0, wmax1, TYPE_SIGN (type), &min_ovf); wi::mul (wmax0, wmin1, TYPE_SIGN (type), &max_ovf); if (min_ovf == wi::OVF_NONE && max_ovf == wi::OVF_NONE) overflowed = false; } } /* #line 785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!overflowed ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1308; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 786, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1308:; } } } } return false; } static bool gimple_simplify_308 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1309; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1309:; return false; } static bool gimple_simplify_309 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1310; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (stype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (stype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1310; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_int_cst (stype, 0); res_op->resimplify (lseq, valueize); return true; } next_after_fail1310:; } } return false; } static bool gimple_simplify_310 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1311; 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__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1311; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1311; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1311:; } return false; } static bool gimple_simplify_311 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1312; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (type, wi::to_wide (captures[2]) + wi::to_wide (captures[4])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1312:; } return false; } static bool gimple_simplify_312 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1313; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1313:; } return false; } static bool gimple_simplify_313 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (HYPOT)) { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1314; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1314; res_op->ops[0] = _r1; } res_op->ops[1] = build_real_truncate (type, dconst_sqrt2 ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1314:; } return false; } static bool gimple_simplify_314 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1315; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1315:; } } } return false; } static bool gimple_simplify_315 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1316; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1316; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1316:; } return false; } static bool gimple_simplify_316 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1317; 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__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1317:; } } return false; } static bool gimple_simplify_317 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1318; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; { tree _o1[1], _r1; _o1[0] = captures[4]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1318; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1318:; } else { { /* #line 6676 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[2])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1319; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1319; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1319; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1319; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1319:; } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1320; 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__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1320; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[4]; if (newtype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1320; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1320:; } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1321; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1321; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (newtype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (newtype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1321; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1321; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1321:; } } } } } } } } return false; } static bool gimple_simplify_318 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1322; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1322; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1322:; } return false; } static bool gimple_simplify_319 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1323; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1323:; } } return false; } static bool gimple_simplify_320 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1324; 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__); { res_op->set_op (LT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1324; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1324:; } return false; } static bool gimple_simplify_321 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (coss), const combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1325; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 838, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1325:; return false; } static bool gimple_simplify_322 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 2757 "/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])) && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_OVERFLOW_SANITIZED (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1326; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2763, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1326; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1326:; } } } return false; } static bool gimple_simplify_323 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1327; 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__); { res_op->set_op (POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = build_one_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1327; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1327:; } } return false; } static bool gimple_simplify_324 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1328; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1328:; return false; } static bool gimple_simplify_325 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1329; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1329:; return false; } static bool gimple_simplify_326 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1330; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1330; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1330:; } return false; } static bool gimple_simplify_327 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1331; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1331:; } } return false; } static bool gimple_simplify_328 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out)) { /* #line 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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1332; 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__); { res_op->set_op (out, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[2]; _o2[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_MUL_OVERFLOW, cpx, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1332; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1332; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (t); res_op->resimplify (lseq, valueize); return true; } next_after_fail1332:; } } return false; } static bool gimple_simplify_329 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op)) { { /* #line 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1333; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = pmop[0]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1333; } else _r3 = _o3[0]; _o2[0] = _r3; } { tree _o3[1], _r3; _o3[0] = pmop[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1333; } else _r3 = _o3[0]; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1333; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[5]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1333; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1333; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1333:; } } return false; } static bool gimple_simplify_330 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (floors), const combined_fn ARG_UNUSED (truncs)) { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1334; 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__); { res_op->set_op (truncs, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1334:; } return false; } static bool gimple_simplify_331 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (plusminus)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1335; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = build_one_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1335; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1335:; } } } return false; } static bool gimple_simplify_332 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1336; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1336:; } else { /* #line 2407 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == EQ_EXPR && !val ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1337; 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 tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1337:; } else { /* #line 2408 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (code1 == NE_EXPR && !val ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1338; 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 tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1338:; } } } } return false; } static bool gimple_simplify_333 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1339; 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__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1339:; return false; } static bool gimple_simplify_334 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1340; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_int_cst (TREE_TYPE (captures[1]), low % prec); res_op->resimplify (lseq, valueize); return true; } next_after_fail1340:; } else { /* #line 3426 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1341; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1341:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1342; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_int_cst (TREE_TYPE (captures[1]), prec - 1); res_op->resimplify (lseq, valueize); return true; } next_after_fail1342:; } } } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1343; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_int_cst (TREE_TYPE (captures[1]), low); res_op->resimplify (lseq, valueize); return true; } next_after_fail1343:; } } } } return false; } static bool gimple_simplify_335 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1344; 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__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1344:; return false; } static bool gimple_simplify_336 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1345; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1345:; return false; } static bool gimple_simplify_337 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1346; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[3])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1346:; } return false; } static bool gimple_simplify_338 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1347; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (type, wi::add (wi::to_wide (captures[2]), 1)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1347:; } return false; } static bool gimple_simplify_339 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1348; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1348; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1348; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1348:; } return false; } static bool gimple_simplify_340 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp)) { { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1349; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1349:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1350; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_int_cst (TREE_TYPE (captures[1]), c1 - c2); res_op->resimplify (lseq, valueize); return true; } next_after_fail1350:; } } return false; } static bool gimple_simplify_341 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (coshs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts)) { /* #line 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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1351; 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__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = t_one; { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[2], _r3; _o3[0] = t_one; _o3[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1351; _o2[0] = _r3; } { tree _o3[2], _r3; _o3[0] = t_one; _o3[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1351; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1351; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1351; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1351:; } } return false; } static bool gimple_simplify_342 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1352; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[3], _r2; _o2[0] = captures[2]; { tree _o3[1], _r3; _o3[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1352; _o2[1] = _r3; } _o2[2] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1352; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1352; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1352:; } return false; } static bool gimple_simplify_343 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1353; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1353:; return false; } static bool gimple_simplify_344 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (copysigns)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1354; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1354:; return false; } static bool gimple_simplify_345 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1355; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1355:; return false; } static bool gimple_simplify_346 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1356; 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__); { res_op->set_op (ovf, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1356:; } return false; } static bool gimple_simplify_347 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (COPYSIGN_ALL)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1357; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1357:; return false; } static bool gimple_simplify_348 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1358; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1358:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1359; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1359; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1359:; } } 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])))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1360; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[3]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1360; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1360:; } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1361; 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 tem; tem = constant_boolean_node (cmp == EQ_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1361:; } else { /* #line 5378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == LT_EXPR || cmp == LE_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1362; 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 tem; tem = constant_boolean_node (above ? true : false, type); res_op->set_value (tem); return true; } next_after_fail1362:; } else { /* #line 5380 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (cmp == GT_EXPR || cmp == GE_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1363; 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 tem; tem = constant_boolean_node (above ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1363:; } } } } } } } } } } return false; } static bool gimple_simplify_349 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1364; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1364:; return false; } static bool gimple_simplify_350 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1365; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1365:; } return false; } static bool gimple_simplify_351 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1366; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1366:; return false; } static bool gimple_simplify_352 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (copysigns)) { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (optimize && !HONOR_SNANS (captures[0]) && types_match (type, TREE_TYPE (captures[1])) && types_match (type, TREE_TYPE (captures[2])) && TYPE_PRECISION (type) < TYPE_PRECISION (TREE_TYPE (captures[0])) && direct_internal_fn_supported_p (IFN_COPYSIGN, type, OPTIMIZE_FOR_BOTH) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1367; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6480, __FILE__, __LINE__); { res_op->set_op (CFN_COPYSIGN, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1367:; } return false; } static bool gimple_simplify_353 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1368; 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__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[0]; _o2[1] = shifter; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1368; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1368; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1368:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1369; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[2], _r3; _o3[0] = captures[0]; _o3[1] = shifter; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1369; _o2[0] = _r3; } if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1369; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1369; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1369:; } } } return false; } static bool gimple_simplify_354 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (fns)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1370; 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__); { res_op->set_op (fns, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1370:; return false; } static bool gimple_simplify_355 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) && !TYPE_UNSIGNED (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1371; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1371:; } return false; } static bool gimple_simplify_356 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1372; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1372:; } return false; } static bool gimple_simplify_357 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shift)) { /* #line 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1373; 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 tem; tem = build_int_cst (type, 0); res_op->set_value (tem); return true; } next_after_fail1373:; } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1374; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; if (shift_type != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1374; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1374; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1374; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail1374:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1375; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail1375:; } } } } } } } } } } return false; } static bool gimple_simplify_358 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (HYPOT)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1376; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1376:; return false; } static bool gimple_simplify_359 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1377; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1591, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1377; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1377; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1377; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1377:; } return false; } static bool gimple_simplify_360 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1378; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1378; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1378; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1378:; } return false; } static bool gimple_simplify_361 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shiftrotate)) { { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1379; 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__); { res_op->set_op (shiftrotate, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1379:; } } return false; } static bool gimple_simplify_362 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 5438 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])) && !wi::neg_p (wi::to_wide (captures[3])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1380; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5444, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1380; _o2[0] = _r3; } if (TREE_TYPE (_o1[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (_o1[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1380; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1380; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1380:; } return false; } static bool gimple_simplify_363 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (rotate), const enum tree_code ARG_UNUSED (invrot), const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1381; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = const_binop (invrot, TREE_TYPE (captures[0]), captures[2], captures[1]); res_op->resimplify (lseq, valueize); return true; } next_after_fail1381:; return false; } static bool gimple_simplify_364 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (rep), const combined_fn ARG_UNUSED (popcount)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1382; 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__); { res_op->set_op (rep, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[0])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1382:; return false; } static bool gimple_simplify_365 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shift)) { /* #line 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1383; 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 tem; tem = build_int_cst (type, 0); res_op->set_value (tem); return true; } next_after_fail1383:; } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1384; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; if (shift_type != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (shift_type, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1384; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1384; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1384; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail1384:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1385; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = newmaskt; res_op->resimplify (lseq, valueize); return true; } next_after_fail1385:; } } } } } } } } } } return false; } static bool gimple_simplify_366 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (POPCOUNT), const combined_fn ARG_UNUSED (PARITY)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1386; 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__); { res_op->set_op (PARITY, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1386:; return false; } static bool gimple_simplify_367 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp)) { /* #line 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1387; 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__); { res_op->set_op (scmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1387; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1387:; } return false; } static bool gimple_simplify_368 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (PARITY)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1388; 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__); { res_op->set_op (PARITY, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1388:; return false; } static bool gimple_simplify_369 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1389; 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__); { res_op->set_op (CFN_FMA, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1389:; } return false; } static bool gimple_simplify_370 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (PARITY)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1390; 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__); { res_op->set_op (PARITY, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1390; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1390:; return false; } static bool gimple_simplify_371 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1391; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1391:; } } return false; } static bool gimple_simplify_372 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out)) { /* #line 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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1392; 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__); { res_op->set_op (out, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[3]), wi::max_value (prec, sign) - wi::to_wide (captures[4])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1392:; } } return false; } static bool gimple_simplify_373 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (cond_op)) { { /* #line 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1393; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; _o1[2] = captures[2]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1393; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1393; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1393:; } } return false; } static bool gimple_simplify_374 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1394; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1394; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[3]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1394; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1394:; } return false; } static bool gimple_simplify_375 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (fns)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1395; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1395:; return false; } static bool gimple_simplify_376 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1396; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1396:; } return false; } static bool gimple_simplify_377 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1397; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1397:; return false; } static bool gimple_simplify_378 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos)) { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (optimize && canonicalize_math_p () && targetm.libc_has_function (function_c99_misc, NULL_TREE) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1398; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), tos, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1398; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1398:; } return false; } static bool gimple_simplify_379 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1399; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1399; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1399:; } return false; } static bool gimple_simplify_380 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1400; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1400; } else _r2 = _o2[0]; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1400; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1400:; } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1401; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1401; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1401:; } } } } return false; } static bool gimple_simplify_381 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (COPYSIGN_ALL)) { /* #line 341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1402; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1402; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1402:; } return false; } static bool gimple_simplify_382 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (shiftrotate)) { { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1403; 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__); { res_op->set_op (shiftrotate, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1403:; } } return false; } static bool gimple_simplify_383 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 1026 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (~wi::to_wide (captures[1]) == wi::to_wide (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1404; 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__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1404:; } return false; } static bool gimple_simplify_384 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (eqne)) { /* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == EQ_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1405; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1405:; } else { /* #line 2366 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == NE_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1406; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1406:; } } return false; } static bool gimple_simplify_385 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1407; 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__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1407; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1407; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1407; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1407:; } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1408; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1408; _o2[0] = _r3; } _o2[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1408; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1408; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1408:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1409; 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__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = cst; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1409:; } } } } } } } return false; } static bool gimple_simplify_386 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (eqne)) { /* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == EQ_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1410; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1410:; } else { /* #line 2366 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (eqne == NE_EXPR ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1411; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1411:; } } return false; } static bool gimple_simplify_387 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1412; 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__); { res_op->set_op (CFN_FNMA, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1412:; } return false; } static bool gimple_simplify_388 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 321 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1413; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1413; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1413:; } return false; } static bool gimple_simplify_389 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1414; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1414:; return false; } static bool gimple_simplify_390 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (uncond_op), const combined_fn ARG_UNUSED (cond_op)) { { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7431 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1415; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7434, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[5], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1415; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; _o1[3] = captures[5]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1415; _o1[4] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1415; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1415:; } } return false; } static bool gimple_simplify_391 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1416; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[6]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1416; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1416:; } else { /* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1417; 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__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[3]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1417; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1417:; } } } return false; } static bool gimple_simplify_392 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1418; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1418:; return false; } static bool gimple_simplify_393 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (mod)) { /* #line 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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1419; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1419:; } return false; } static bool gimple_simplify_394 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (fold_real_zero_addition_p (type, captures[0], captures[1], 0) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1420; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1420:; } return false; } static bool gimple_simplify_395 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out)) { /* #line 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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1421; 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__); { res_op->set_op (out, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[2]; _o2[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_MUL_OVERFLOW, cpx, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1421; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1421; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (t); res_op->resimplify (lseq, valueize); return true; } next_after_fail1421:; } } return false; } static bool gimple_simplify_396 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_single_nonzero_warnv_p (captures[0], NULL) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1422; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1422:; } return false; } static bool gimple_simplify_397 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1423; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1423; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1423:; } return false; } static bool gimple_simplify_398 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1424; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1424:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1425; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1425:; } } return false; } static bool gimple_simplify_399 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 2046 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1426; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1426:; } return false; } static bool gimple_simplify_400 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp)) { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1427; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1427:; } else { /* #line 6817 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1428; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = TREE_OVERFLOW (res) ? drop_tree_overflow (res) : res; res_op->resimplify (lseq, valueize); return true; } next_after_fail1428:; } } } } return false; } static bool gimple_simplify_401 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1429; 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__); { res_op->set_op (trunc_divmod, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1429:; } return false; } static bool gimple_simplify_402 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop)) { { /* #line 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1430; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = pmop[0]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1430; } else _r3 = _o3[0]; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1430; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[4]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1430; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1430; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1430:; } } return false; } static bool gimple_simplify_403 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1431; 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__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[3], _r2; _o2[0] = captures[2]; _o2[1] = captures[2]; _o2[2] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1431; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1431; res_op->ops[0] = _r1; } res_op->ops[1] = captures[5]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1431:; } return false; } static bool gimple_simplify_404 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp)) { /* #line 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1432; 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 tem; fold_overflow_warning (("assuming signed overflow does not occur " "when simplifying conditional to constant"), WARN_STRICT_OVERFLOW_CONDITIONAL); bool less = cmp == LE_EXPR || cmp == LT_EXPR; bool ovf_high = wi::lt_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (op == MINUS_EXPR); tem = constant_boolean_node (less == ovf_high, type); res_op->set_value (tem); return true; } next_after_fail1432:; } 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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1433; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = res; res_op->resimplify (lseq, valueize); return true; } next_after_fail1433:; } } } } } return false; } static bool gimple_simplify_405 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (div)) { /* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!integer_zerop (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1434; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1434:; } return false; } static bool gimple_simplify_406 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 4482 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_UNSIGNED (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1435; 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__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1435; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1435; res_op->ops[1] = _r1; } res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1435:; } return false; } static bool gimple_simplify_407 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (FFS), const combined_fn ARG_UNUSED (CTZ)) { /* #line 7302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && direct_internal_fn_supported_p (IFN_CTZ, TREE_TYPE (captures[0]), OPTIMIZE_FOR_SPEED) ) { { /* #line 7305 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (TREE_TYPE (captures[0])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1436; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7306, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1436; } else _r2 = _o2[0]; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CTZ, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1436; res_op->ops[0] = _r1; } res_op->ops[1] = build_one_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1436:; } } return false; } static bool gimple_simplify_408 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 2110 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TREE_INT_CST_LOW (captures[1]) & 1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1437; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1437:; } return false; } static bool gimple_simplify_409 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1438; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1438:; } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1439; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1439:; } } } return false; } static bool gimple_simplify_410 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1440; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1008, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1440; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1440:; return false; } static bool gimple_simplify_411 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const combined_fn ARG_UNUSED (bswap)) { { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree ctype = TREE_TYPE (captures[0]); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1441; 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__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (ctype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (ctype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, ctype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1441; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; if (ctype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (ctype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, ctype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1441; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1441:; } return false; } static bool gimple_simplify_412 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (sins), const combined_fn ARG_UNUSED (atans), const combined_fn ARG_UNUSED (sqrts), const combined_fn ARG_UNUSED (copysigns)) { { /* #line 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1442; 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__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1442; _o1[0] = _r2; } _o1[1] = t_cst; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1442; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; { tree _o3[2], _r3; { tree _o4[2], _r4; _o4[0] = captures[1]; _o4[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]); tem_op.resimplify (lseq, valueize); _r4 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r4) goto next_after_fail1442; _o3[0] = _r4; } _o3[1] = t_one; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1442; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1442; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1442; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = t_one; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), copysigns, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1442; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1442:; } } return false; } static bool gimple_simplify_413 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1443; 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 tem; tem = constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1443:; } return false; } static bool gimple_simplify_414 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1444; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1444:; return false; } static bool gimple_simplify_415 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1445; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1445:; return false; } static bool gimple_simplify_416 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1446; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1446; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1446:; return false; } static bool gimple_simplify_417 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1447; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5435, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r2) goto next_after_fail1447; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1447; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[0])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1447:; return false; } static bool gimple_simplify_418 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (mod)) { /* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!TYPE_UNSIGNED (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1448; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1448:; } return false; } static bool gimple_simplify_419 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1449; 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__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1449:; return false; } static bool gimple_simplify_420 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp)) { /* #line 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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1450; 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__); { res_op->set_op (ncmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (stype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (stype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1450; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (stype); res_op->resimplify (lseq, valueize); return true; } next_after_fail1450:; } } return false; } static bool gimple_simplify_421 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1451; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3116, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1451:; } return false; } static bool gimple_simplify_422 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (SQRT_ALL)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1452; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1452:; } } return false; } static bool gimple_simplify_423 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (sinhs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts)) { /* #line 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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1453; 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__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[2], _r3; _o3[0] = t_one; _o3[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1453; _o2[0] = _r3; } { tree _o3[2], _r3; _o3[0] = t_one; _o3[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1453; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1453; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1453; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1453:; } } return false; } static bool gimple_simplify_424 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1454; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1454:; } return false; } static bool gimple_simplify_425 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1455; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1455:; return false; } static bool gimple_simplify_426 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (rotate), 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1456; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1456:; } return false; } static bool gimple_simplify_427 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1457; 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 tem; tem = build_all_ones_cst (type); res_op->set_value (tem); return true; } next_after_fail1457:; } } } return false; } static bool gimple_simplify_428 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (bswap)) { /* #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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1458; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1458; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1458:; } 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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1459; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[2]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1459; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = nst; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, utype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1459; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1459; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1459:; } } } } } } return false; } static bool gimple_simplify_429 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 693 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1460; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[4]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1460; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1460:; } return false; } static bool gimple_simplify_430 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1461; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1461; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1461:; return false; } static bool gimple_simplify_431 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 5456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1462; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[1], _r2; _o2[0] = captures[3]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1462; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1462; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1462:; } return false; } static bool gimple_simplify_432 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (minmax)) { /* #line 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1463; 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__); { res_op->set_op (minmax, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1463; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1463:; } return false; } static bool gimple_simplify_433 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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]); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1464; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (t1 != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1464; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[1]; if (t1 != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t1, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1464; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1464; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1464:; } } } return false; } static bool gimple_simplify_434 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1465; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5450, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r2) goto next_after_fail1465; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1465; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[0])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1465:; return false; } static bool gimple_simplify_435 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1466; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1466:; return false; } static bool gimple_simplify_436 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1467; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4787, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1467:; return false; } static bool gimple_simplify_437 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1468; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1468:; return false; } static bool gimple_simplify_438 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1469; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1469:; return false; } static bool gimple_simplify_439 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (coss), const combined_fn ARG_UNUSED (atans), const combined_fn ARG_UNUSED (sqrts), const combined_fn ARG_UNUSED (copysigns)) { { /* #line 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1470; 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__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1470; _o1[0] = _r2; } _o1[1] = t_cst; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1470; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = t_one; { tree _o2[1], _r2; { tree _o3[2], _r3; { tree _o4[2], _r4; _o4[0] = captures[1]; _o4[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o4[0]), _o4[0], _o4[1]); tem_op.resimplify (lseq, valueize); _r4 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r4) goto next_after_fail1470; _o3[0] = _r4; } _o3[1] = t_one; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1470; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1470; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1470; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = t_zero; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), copysigns, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1470; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1470:; } } return false; } static bool gimple_simplify_440 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1471; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1471; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1471:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1472; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1472; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1472:; } } } return false; } static bool gimple_simplify_441 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1473; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1473; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1473:; return false; } static bool gimple_simplify_442 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1474; 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__); { res_op->set_op (ncmp, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1474; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1474:; } return false; } static bool gimple_simplify_443 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2)) { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1475; 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 tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail1475:; } return false; } static bool gimple_simplify_444 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1476; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail1476:; return false; } static bool gimple_simplify_445 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1477; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1477; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1477:; return false; } static bool gimple_simplify_446 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1478; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1478; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1478:; } } } return false; } static bool gimple_simplify_447 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (rotate)) { /* #line 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]); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1479; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; if (rotate_type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (rotate_type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, rotate_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1479; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), rotate, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1479; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1479:; } } return false; } static bool gimple_simplify_448 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1480; 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__); { res_op->set_op (cmp, type, 2); { tree _o1[2], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1480; _o1[0] = _r2; } _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1480; res_op->ops[0] = _r1; } res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1480:; return false; } static bool gimple_simplify_449 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1481; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1481; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1481:; return false; } static bool gimple_simplify_450 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[3]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1482; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1482; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1482:; return false; } static bool gimple_simplify_451 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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]))) && ( 1 || !TREE_SIDE_EFFECTS (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1483; 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__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[4]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), cmp, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1483; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->ops[2] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1483:; } return false; } static bool gimple_simplify_452 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1484; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1484:; return false; } static bool gimple_simplify_453 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[3]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1485; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1485; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1485:; return false; } static bool gimple_simplify_454 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (COPYSIGN_ALL)) { /* #line 335 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1486; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1486:; } return false; } static bool gimple_simplify_455 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1487; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1094, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1487; res_op->ops[0] = _r1; } { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r2) goto next_after_fail1487; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1487; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1487:; return false; } static bool gimple_simplify_456 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1488; 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__); { res_op->set_op (COS, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1488:; } } return false; } static bool gimple_simplify_457 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1489; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1489:; return false; } static bool gimple_simplify_458 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1490; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1099, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1490; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[4]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1490; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1490:; return false; } static bool gimple_simplify_459 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 3338 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1491; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1491; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = build_minus_one_cst (type); _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1491; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1491:; } return false; } static bool gimple_simplify_460 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1492; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1492:; } return false; } static bool gimple_simplify_461 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1493; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[6]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1493; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1493:; } else { /* #line 1505 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1494; 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__); { res_op->set_op (op, type, 2); { tree _o1[1], _r1; _o1[0] = captures[3]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1494; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1494:; } } } return false; } static bool gimple_simplify_462 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (cond_op)) { { /* #line 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1495; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[2]; _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1495; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1495; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1495:; } } return false; } static bool gimple_simplify_463 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1496; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1496:; } return false; } static bool gimple_simplify_464 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1497; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1497:; return false; } static bool gimple_simplify_465 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const combined_fn ARG_UNUSED (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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1498; 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__); { res_op->set_op (TANH, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1498:; } return false; } static bool gimple_simplify_466 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { /* #line 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1499; 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__); { res_op->set_op (op, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (type, mul); res_op->resimplify (lseq, valueize); return true; } next_after_fail1499:; } else { { /* #line 3859 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (type); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1500; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1500; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1500; } else _r3 = _o3[0]; _o2[0] = _r3; } { tree _o3[1], _r3; _o3[0] = captures[2]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1500; } else _r3 = _o3[0]; _o2[1] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1500; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1500; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1500:; } } } } return false; } static bool gimple_simplify_467 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 329 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1501; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1501; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1501:; } return false; } static bool gimple_simplify_468 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1502; 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__); { res_op->set_op (cmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (utype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1502; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[2]; { tree _o2[1], _r2; _o2[0] = captures[1]; if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1502; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1502; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1502:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1503; 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__); { res_op->set_op (cmp2, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[0])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1503:; } } } return false; } static bool gimple_simplify_469 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1504; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail1504:; return false; } static bool gimple_simplify_470 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift)) { /* #line 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1505; 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__); { res_op->set_op (bit_op, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; if (type != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1505; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), shift, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1505; res_op->ops[0] = _r1; } res_op->ops[1] = mask; res_op->resimplify (lseq, valueize); return true; } next_after_fail1505:; } } } return false; } static bool gimple_simplify_471 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 1172 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1506; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1173, __FILE__, __LINE__); { tree tem; tem = constant_boolean_node (cmp == GT_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1506:; } return false; } static bool gimple_simplify_472 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 3004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && tree_fits_uhwi_p (captures[2]) && tree_to_uhwi (captures[2]) < element_precision (type) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || optab_handler (smul_optab, TYPE_MODE (type)) != CODE_FOR_nothing) ) { { /* #line 3010 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree t = type; if (!TYPE_OVERFLOW_WRAPS (t)) t = unsigned_type_for (t); wide_int w = wi::set_bit_in_zero (tree_to_uhwi (captures[2]), element_precision (type)); w += 1; tree cst = wide_int_to_tree (VECTOR_TYPE_P (t) ? TREE_TYPE (t) : t, w); cst = build_uniform_cst (t, cst); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1507; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3018, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (t != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1507; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = cst; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1507; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1507:; } } return false; } static bool gimple_simplify_473 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1508; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1508:; } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1509; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_int_cst (TREE_TYPE (captures[1]), cand); res_op->resimplify (lseq, valueize); return true; } next_after_fail1509:; } } } return false; } static bool gimple_simplify_474 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out)) { /* #line 3243 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1510; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3244, __FILE__, __LINE__); { res_op->set_op (out, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1510:; } return false; } static bool gimple_simplify_475 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1511; 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 tem; tem = build_minus_one_cst (type); res_op->set_value (tem); return true; } next_after_fail1511:; } return false; } static bool gimple_simplify_476 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1512; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1512:; return false; } static bool gimple_simplify_477 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { /* #line 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1513; 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 tem; tem = constant_boolean_node (cmp == NE_EXPR, type); res_op->set_value (tem); return true; } next_after_fail1513:; } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1514; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3264, __FILE__, __LINE__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1514:; } } return false; } static bool gimple_simplify_478 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1515; 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__); { res_op->set_op (cmp2, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = build_zero_cst (TREE_TYPE (captures[1])); res_op->resimplify (lseq, valueize); return true; } next_after_fail1515:; } else { /* #line 7341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (tree_int_cst_sgn (captures[2]) < 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1516; 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 tem; tem = constant_boolean_node (cmp == GT_EXPR ? true : false, type); res_op->set_value (tem); return true; } next_after_fail1516:; } else { /* #line 7343 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_widest (captures[2]) >= prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1517; 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 tem; tem = constant_boolean_node (cmp == GT_EXPR ? false : true, type); res_op->set_value (tem); return true; } next_after_fail1517:; } else { /* #line 7345 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_widest (captures[2]) == prec - 1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1518; 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__); { res_op->set_op (cmp3, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = wide_int_to_tree (TREE_TYPE (captures[1]), wi::shifted_mask (prec - 1, 1, false, prec)); res_op->resimplify (lseq, valueize); return true; } next_after_fail1518:; } else { /* #line 7349 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (single_use (captures[0]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1519; 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__); { res_op->set_op (bit_op, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_match_op tem_op (res_op->cond.any_else (), cmp2, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1519; res_op->ops[0] = _r1; } { 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)); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1519; _o1[0] = _r2; } _o1[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_match_op tem_op (res_op->cond.any_else (), cmp3, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1519; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1519:; } } } } } } return false; } static bool gimple_simplify_479 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1520; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1520; _o1[0] = _r2; } _o1[1] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1520; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1520:; } return false; } static bool gimple_simplify_480 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (neg_cmp)) { /* #line 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1521; 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__); { res_op->set_op (cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1521:; } else { /* #line 5954 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1522; 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__); { res_op->set_op (neg_cmp, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1522:; } } } } } return false; } static bool gimple_simplify_481 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (bitop)) { /* #line 1698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && TREE_CODE (captures[3]) != INTEGER_CST && tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && types_match (type, captures[2]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1523; 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__); { res_op->set_op (bitop, type, 2); res_op->ops[0] = captures[2]; { tree _o1[1], _r1; _o1[0] = captures[3]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1523; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1523:; } return false; } static bool gimple_simplify_482 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (cmp)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1524; 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__); { res_op->set_op (UNORDERED_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1524:; return false; } static bool gimple_simplify_483 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { /* #line 1252 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) && !integer_all_onesp (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1525; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1256, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1525; res_op->ops[0] = _r1; } res_op->ops[1] = build_minus_one_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1525:; } else { /* #line 1257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && TREE_CODE (captures[1]) == INTEGER_CST && wi::to_wide (captures[1]) != wi::min_value (TYPE_PRECISION (type), SIGNED) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1526; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1261, __FILE__, __LINE__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_minus_one_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1526; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1526:; } } return false; } static bool gimple_simplify_484 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1527; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1527:; return false; } static bool gimple_simplify_485 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures) , const enum tree_code ARG_UNUSED (op)) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1528; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1528:; return false; } static bool gimple_simplify_ABS_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1529; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1529; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1529:; } } } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 1518 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1530; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1530:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 1528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1531; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1531:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); { /* #line 4087 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1532; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4087, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1532; res_op->ops[1] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1532; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1532:; } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1533; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1533:; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1534; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1534:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1535; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1535:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; case CFN_BUILT_IN_ATANF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6157 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_439 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_ATANF, CFN_BUILT_IN_SQRTF, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COS; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1536; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1536:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COS; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1537; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1537:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_COPYSIGN)) return true; } } break; case CFN_BUILT_IN_ATAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6157 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_439 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_ATAN, CFN_BUILT_IN_SQRT, CFN_BUILT_IN_COPYSIGN)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1538; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1538:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1539; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1539:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; case CFN_BUILT_IN_ATANL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6157 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_439 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_ATANL, CFN_BUILT_IN_SQRTL, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_COS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_COS; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1540; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1540:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_COS; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1541; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1541:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_COS, CFN_COPYSIGN)) return true; } } break; case CFN_ATAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6157 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_439 (res_op, seq, valueize, type, captures, CFN_COS, CFN_ATAN, CFN_SQRT, CFN_COPYSIGN)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSHF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSHF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1542; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1542:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSHF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1543; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1543:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; case CFN_BUILT_IN_ATANHF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_341 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_ATANHF, CFN_BUILT_IN_SQRTF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSH (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSH; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1544; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1544:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSH; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1545; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1545:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSH, CFN_BUILT_IN_COPYSIGN)) return true; } } break; case CFN_BUILT_IN_ATANH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_341 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSH, CFN_BUILT_IN_ATANH, CFN_BUILT_IN_SQRT)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COSHL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSHL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1546; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1546:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_BUILT_IN_COSHL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1547; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1547:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; case CFN_BUILT_IN_ATANHL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_341 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_ATANHL, CFN_BUILT_IN_SQRTL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_COSH (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_COSH; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1548; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1548:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; const combined_fn coss = CFN_COSH; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1549; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 795, __FILE__, __LINE__); { res_op->set_op (coss, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1549:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 838 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_321 (res_op, seq, valueize, type, captures, CFN_COSH, CFN_COPYSIGN)) return true; } } break; case CFN_ATANH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_341 (res_op, seq, valueize, type, captures, CFN_COSH, CFN_ATANH, CFN_SQRT)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1550; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 891, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CCOSF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1550:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1551; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 891, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CCOS, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1551:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1552; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 891, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CCOSL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1552:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSHF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1553; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 891, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CCOSHF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1553:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSH (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1554; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 891, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CCOSH, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1554:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CCOSHL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 891 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1555; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 891, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CCOSHL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1555:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CABSF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONJ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1556; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 898, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CABSF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1556:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1557; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 898, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CABSF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1557:; } break; } case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (real_zerop (_q21)) { { /* #line 6192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1558; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6192, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1558:; } } if (real_zerop (_q20)) { { /* #line 6192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1559; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6192, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1559:; } } if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1560; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6368, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1560; res_op->ops[0] = _r1; } res_op->ops[1] = build_real_truncate (type, dconst_sqrt2 ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1560:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CABS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONJ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1561; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 898, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CABS, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1561:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1562; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 898, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CABS, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1562:; } break; } case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (real_zerop (_q21)) { { /* #line 6192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1563; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6192, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1563:; } } if (real_zerop (_q20)) { { /* #line 6192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1564; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6192, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1564:; } } if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1565; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6368, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1565; res_op->ops[0] = _r1; } res_op->ops[1] = build_real_truncate (type, dconst_sqrt2 ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1565:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CABSL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONJ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1566; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 898, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CABSL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1566:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 898 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1567; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 898, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CABSL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1567:; } break; } case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (real_zerop (_q21)) { { /* #line 6192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1568; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6192, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1568:; } } if (real_zerop (_q20)) { { /* #line 6192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1569; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6192, __FILE__, __LINE__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1569:; } } if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1570; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6368, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1570; res_op->ops[0] = _r1; } res_op->ops[1] = build_real_truncate (type, dconst_sqrt2 ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1570:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_BIT_NOT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1073 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 }; if (gimple_simplify_445 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1073 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 }; if (gimple_simplify_445 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1078 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 }; if (gimple_simplify_449 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1078 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 }; if (gimple_simplify_449 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1231 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1571; 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__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1571:; } break; } default:; } } break; default:; } { /* #line 1239 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1572; 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__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1572; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1572:; } if (integer_each_onep (_q21)) { { /* #line 1815 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_152 (res_op, seq, valueize, type, captures)) return true; } } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_30 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_30 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1573; 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__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1573; res_op->ops[0] = _r1; } res_op->ops[1] = const_unop (NEGATE_EXPR, type, captures[2]); res_op->resimplify (lseq, valueize); return true; } next_after_fail1573:; } } break; } default:; } if (integer_all_onesp (_q21)) { { /* #line 1820 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_301 (res_op, seq, valueize, type, captures)) return true; } } break; } case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 1266 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; /* #line 1266 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1574; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1267, __FILE__, __LINE__); { res_op->set_op (RSHIFT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1574; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1574:; } else { /* #line 1271 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!wi::neg_p (tree_nonzero_bits (captures[1])) ) { { /* #line 1272 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree stype = signed_type_for (TREE_TYPE (captures[1])); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1575; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1273, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; if (stype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (stype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1575; } else _r3 = _o3[0]; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r2) goto next_after_fail1575; _o1[0] = _r2; } _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1575; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1575:; } } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 }; if (gimple_simplify_257 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 }; if (gimple_simplify_257 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 1790 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1576; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1576:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_147 (res_op, seq, valueize, type, captures)) return true; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (integer_each_onep (_q31)) { { /* #line 1815 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_152 (res_op, seq, valueize, type, captures)) return true; } } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if (integer_all_onesp (_q31)) { { /* #line 1820 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_301 (res_op, seq, valueize, type, captures)) return true; } } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_286 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 }; if (gimple_simplify_154 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 }; if (gimple_simplify_154 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); { /* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 }; if (gimple_simplify_218 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 3588 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 }; if (gimple_simplify_218 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case LROTATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 }; if (gimple_simplify_447 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 }; if (gimple_simplify_447 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case RROTATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 }; if (gimple_simplify_447 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 }; if (gimple_simplify_447 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 1795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_147 (res_op, seq, valueize, type, captures)) return true; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_286 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_154 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1831 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_154 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case LROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 }; if (gimple_simplify_303 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 }; if (gimple_simplify_303 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case RROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 }; if (gimple_simplify_303 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 3601 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 }; if (gimple_simplify_303 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); { /* #line 4087 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1577; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4087, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1577; res_op->ops[1] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1577; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1577:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR, UNGE_EXPR)) return true; } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR, UNGT_EXPR)) return true; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR, NE_EXPR)) return true; } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR, EQ_EXPR)) return true; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR, UNLT_EXPR)) return true; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR, UNLE_EXPR)) return true; } break; } case UNORDERED_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR)) return true; } break; } case ORDERED_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } break; } case UNLT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, UNLT_EXPR, GE_EXPR, GE_EXPR)) return true; } break; } case UNLE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, UNLE_EXPR, GT_EXPR, GT_EXPR)) return true; } break; } case UNGT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, UNGT_EXPR, LE_EXPR, LE_EXPR)) return true; } break; } case UNGE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, UNGE_EXPR, LT_EXPR, LT_EXPR)) return true; } break; } case UNEQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR)) return true; } break; } case LTGT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 4650 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_117 (res_op, seq, valueize, type, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR)) return true; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_ABSU_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case ABSU_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1578; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1578:; } } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 1532 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1579; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1532, __FILE__, __LINE__); { res_op->set_op (ABSU_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1579:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); { /* #line 4087 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1580; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4087, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1580; res_op->ops[1] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1580; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1580:; } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1581; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1581:; } } return false; } static bool gimple_simplify_NEGATE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (gimple_negate_expr_p (_q21, valueize)) { { /* #line 1596 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_274 (res_op, seq, valueize, type, captures)) return true; } } if (gimple_negate_expr_p (_q20, valueize)) { { /* #line 1596 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; if (gimple_simplify_274 (res_op, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1582; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1582:; } } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1583; 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__); { res_op->set_op (POINTER_DIFF_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1583:; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (gimple_negate_expr_p (_q21, valueize)) { { /* #line 1622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_101 (res_op, seq, valueize, type, captures)) return true; } } if (gimple_negate_expr_p (_q20, valueize)) { { /* #line 1622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_101 (res_op, seq, valueize, type, captures)) return true; } } break; } case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (gimple_negate_expr_p (_q21, valueize)) { { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1584; 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__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1584; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1584:; } } } if (gimple_negate_expr_p (_q20, valueize)) { { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1585; 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__); { res_op->set_op (RDIV_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1585; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1585:; } } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_219 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1586; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1586:; } } } break; } default:; } } break; default:; } { tree _q20_pops[1]; if (gimple_logical_inverted_value (_q20, _q20_pops, valueize)) { 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1587; 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__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1587; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_all_ones_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1587:; } } } } if (gimple_negate_expr_p (_q20, valueize)) { { /* #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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1588; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1588; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1588:; } } } } break; } case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_219 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 1802 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_110 (res_op, seq, valueize, type, captures)) return true; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_327 (res_op, seq, valueize, type, captures)) return true; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); { /* #line 4087 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1589; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4087, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1589; res_op->ops[1] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1589; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1589:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FMAF: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF)) return true; } } break; case CFN_BUILT_IN_FMA: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA)) return true; } } break; case CFN_BUILT_IN_FMAL: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL)) return true; } } break; case CFN_FMA: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 }; if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_FMA)) return true; } } break; case CFN_FMS: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1590; 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__); { res_op->set_op (CFN_FNMA, type, 3); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1590:; } } } } break; case CFN_FNMA: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1591; 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__); { res_op->set_op (CFN_FMS, type, 3); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1591:; } } } } break; case CFN_FNMS: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1592; 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__); { res_op->set_op (CFN_FMA, type, 3); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1592:; } } } } break; default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 1802 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_110 (res_op, seq, valueize, type, captures)) return true; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_327 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } } } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1593; 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__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1593; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = build_all_ones_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail1593:; } } } } return false; } static bool gimple_simplify_CONVERT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { 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 }; if (gimple_simplify_481 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { 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 }; if (gimple_simplify_481 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { 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 }; if (gimple_simplify_481 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { 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 }; if (gimple_simplify_481 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { 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 }; if (gimple_simplify_481 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { 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 }; if (gimple_simplify_481 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1594; 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 tem; tem = 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); res_op->set_value (tem); return true; } next_after_fail1594:; } } break; } default:; } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_432 (res_op, seq, valueize, type, captures, MIN_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_432 (res_op, seq, valueize, type, captures, MAX_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1595; 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__); { res_op->set_op (LSHIFT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1595; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1595:; } } break; } default:; } break; } default:; } } 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 (( 1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || ( 0 && type == TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1596; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1596:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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 ((( 1 && useless_type_conversion_p (type, inside_type)) || ( 0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1597; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1597:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1598; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1598:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1599; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1599:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1600; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1600:; } else { /* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1601; 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__); { res_op->set_op (NOP_EXPR, type, 1); { 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))); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1601; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1601:; } else { /* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1602; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1602:; } } } } } } } } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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 ((( 1 && useless_type_conversion_p (type, inside_type)) || ( 0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1603; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1603:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1604; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1604:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1605; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1605:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1606; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1606:; } else { /* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1607; 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__); { res_op->set_op (NOP_EXPR, type, 1); { 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))); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1607; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1607:; } else { /* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1608; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1608:; } } } } } } } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1609; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1609:; } } break; } default:; } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_231 (res_op, seq, valueize, type, captures, MAX_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6501 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_231 (res_op, seq, valueize, type, captures, MIN_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 }; if (gimple_simplify_44 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 }; if (gimple_simplify_317 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 }; if (gimple_simplify_120 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 }; if (gimple_simplify_193 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 }; if (gimple_simplify_44 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 }; if (gimple_simplify_317 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 }; if (gimple_simplify_120 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 }; if (gimple_simplify_193 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 }; if (gimple_simplify_44 (res_op, seq, valueize, type, captures, MULT_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 }; if (gimple_simplify_317 (res_op, seq, valueize, type, captures, MULT_EXPR)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 }; if (gimple_simplify_120 (res_op, seq, valueize, type, captures, MULT_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 }; if (gimple_simplify_193 (res_op, seq, valueize, type, captures, MULT_EXPR)) return true; } break; } case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 }; if (gimple_simplify_44 (res_op, seq, valueize, type, captures, RDIV_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 }; if (gimple_simplify_317 (res_op, seq, valueize, type, captures, RDIV_EXPR)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 }; if (gimple_simplify_120 (res_op, seq, valueize, type, captures, RDIV_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 6654 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 }; if (gimple_simplify_193 (res_op, seq, valueize, type, captures, RDIV_EXPR)) return true; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_TRUNC)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_TRUNC: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC, CFN_TRUNC)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_TRUNCF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF, CFN_TRUNC)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_FLOORL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_FLOOR)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_FLOOR: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_FLOOR)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_FLOORF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF, CFN_FLOOR)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_CEILL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_CEIL)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_CEIL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL, CFN_CEIL)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_CEILF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF, CFN_CEIL)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_ROUNDEVENL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDEVENL, CFN_ROUNDEVEN)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_ROUNDEVEN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDEVEN, CFN_ROUNDEVEN)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_ROUNDEVENF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDEVENF, CFN_ROUNDEVEN)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_ROUNDL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_ROUND)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_ROUND: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND, CFN_ROUND)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_ROUNDF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF, CFN_ROUND)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_NEARBYINTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_NEARBYINT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_NEARBYINT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT, CFN_NEARBYINT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_NEARBYINTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF, CFN_NEARBYINT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_RINTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_RINT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_RINT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT, CFN_RINT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_RINTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF, CFN_RINT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, CFN_SQRT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, CFN_SQRT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (gimple_float16_value_p (_q30, valueize)) { { /* #line 6462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_262 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, CFN_SQRT)) return true; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF16: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF32: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF64: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF128: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF32X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF64X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_COPYSIGNF128X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 6473 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q50 }; if (gimple_simplify_352 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_FMAF: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q22)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q22)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #line 6486 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q50, _q70 }; if (gimple_simplify_259 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF, CFN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_FMA: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q22)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q22)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #line 6486 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q50, _q70 }; if (gimple_simplify_259 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA, CFN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_FMAL: if (gimple_call_num_args (_c1) == 3) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_call_arg (_c1, 2); _q22 = do_valueize (valueize, _q22); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q22)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q22)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); { /* #line 6486 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q50, _q70 }; if (gimple_simplify_259 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL, CFN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_VIEW_CONVERT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 (( 1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || ( 0 && type == TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1610; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1610:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); { /* #line 3652 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1611; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1611:; } } break; } default:; } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1612; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1612:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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])))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1613; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1613:; } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1614; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1614:; } 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))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1615; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = CONSTRUCTOR_ELT (ctor, 0)->value; res_op->resimplify (lseq, valueize); return true; } next_after_fail1615:; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FLOAT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 (( 1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || ( 0 && type == TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1616; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1616:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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 ((( 1 && useless_type_conversion_p (type, inside_type)) || ( 0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1617; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1617:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1618; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1618:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1619; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1619:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1620; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1620:; } else { /* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1621; 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__); { res_op->set_op (NOP_EXPR, type, 1); { 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))); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1621; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1621:; } else { /* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1622; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1622:; } } } } } } } } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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 ((( 1 && useless_type_conversion_p (type, inside_type)) || ( 0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1623; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1623:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1624; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1624:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1625; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1625:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1626; 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__); { res_op->set_op (FLOAT_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1626:; } else { /* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1627; 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__); { res_op->set_op (NOP_EXPR, type, 1); { 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))); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1627; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1627:; } else { /* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1628; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1628:; } } } } } } } } break; } case FIX_TRUNC_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 3812 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 3812 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_trapping_math && types_match (type, TREE_TYPE (captures[0])) && direct_internal_fn_supported_p (IFN_TRUNC, type, OPTIMIZE_FOR_BOTH) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1629; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3816, __FILE__, __LINE__); { res_op->set_op (CFN_TRUNC, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1629:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FIX_TRUNC_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 (( 1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || ( 0 && type == TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1630; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1630:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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 ((( 1 && useless_type_conversion_p (type, inside_type)) || ( 0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1631; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1631:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1632; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1632:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1633; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1633:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1634; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1634:; } else { /* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1635; 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__); { res_op->set_op (NOP_EXPR, type, 1); { 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))); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1635; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1635:; } else { /* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1636; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1636:; } } } } } } } } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #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 ((( 1 && useless_type_conversion_p (type, inside_type)) || ( 0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1637; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1637:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1638; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1638:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1639; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1639:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1640; 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__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1640:; } else { /* #line 3787 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1641; 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__); { res_op->set_op (NOP_EXPR, type, 1); { 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))); gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1641; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1641:; } else { /* #line 3800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1642; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1642:; } } } } } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_PAREN_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PAREN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 3698 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1643; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1643:; } break; } default:; } } break; default:; } if (CONSTANT_CLASS_P (_p0)) { { /* #line 3695 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1644; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1644:; } } return false; } static bool gimple_simplify_REALPART_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 3922 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1645; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1645:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case CONJ_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 3930 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1646; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1646; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1646:; } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1647; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1647; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1647; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1647; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1647:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1648; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1648; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1648; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1648; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1648:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_CEXPIF: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1649; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1649; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1649:; } } break; case CFN_BUILT_IN_CEXPI: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1650; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1650; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1650:; } } break; case CFN_BUILT_IN_CEXPIL: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1651; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1651; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1651:; } } break; default:; } } break; default:; } break; } case CONJ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 3930 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1652; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1652; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1652:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1653; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1653; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1653; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1653; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1653:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1654; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1654; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1654; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1654; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1654:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEXPIF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1655; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1655; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1655:; } } break; case CFN_BUILT_IN_CEXPI: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1656; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COS, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1656; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1656:; } } break; case CFN_BUILT_IN_CEXPIL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3941 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1657; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1657; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1657:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_IMAGPART_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 3925 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1658; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1658:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case CONJ_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 3933 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1659; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1659; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1659; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1659:; } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1660; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1660; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1660; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1660; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1660:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1661; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1661; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1661; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1661; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1661:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_CEXPIF: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1662; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1662; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1662:; } } break; case CFN_BUILT_IN_CEXPI: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1663; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SIN, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1663; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1663:; } } break; case CFN_BUILT_IN_CEXPIL: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1664; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1664; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1664:; } } break; default:; } } break; default:; } break; } case CONJ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 3933 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1665; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1665; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1665; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1665:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1666; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1666; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1666; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1666; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1666:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #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; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1667; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1667; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1667; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1667; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1667:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEXPIF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1668; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1668; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1668:; } } break; case CFN_BUILT_IN_CEXPI: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1669; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SIN, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1669; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1669:; } } break; case CFN_BUILT_IN_CEXPIL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3944 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1670; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1670; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1670:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CONJ_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case CONJ_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 3949 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_134 (res_op, seq, valueize, type, captures)) return true; } break; } case COMPLEX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1671; 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__); { res_op->set_op (COMPLEX_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (itype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (itype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1671; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; if (itype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (itype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1671; } else _r2 = _o2[0]; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1671; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1671:; } } break; } default:; } } break; default:; } break; } case CONJ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 3949 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_134 (res_op, seq, valueize, type, captures)) return true; } break; } case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #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); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1672; 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__); { res_op->set_op (COMPLEX_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[2]; if (itype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (itype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1672; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[3]; if (itype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (itype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1672; } else _r2 = _o2[0]; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1672; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1672:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_56 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3963 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_80 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_56 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3963 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_80 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_56 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3963 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_80 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_BSWAP128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3966 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_56 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3970 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_260 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 3963 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_80 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOGF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1673; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1673:; } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1674; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1674; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1674:; } } } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1675; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1675; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1675:; } } } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1676; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1676; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1676:; } } } } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1677; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1677; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1677:; } } } } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1678; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1678; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1678:; } } } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_POWF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1679; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1679:; } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1680; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1680; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1680:; } } } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1681; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1681; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1681:; } } } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1682; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1682; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1682:; } } } } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1683; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1683; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1683:; } } } } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1684; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1684; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1684:; } } } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOGL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1685; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1685:; } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1686; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1686; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1686:; } } } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1687; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1687; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1687:; } } } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1688; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1688; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1688:; } } } } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1689; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1689; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1689:; } } } } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1690; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1690; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1690:; } } } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_POWL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_LOG (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1691; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1691:; } } } break; case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1692; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1692; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1692:; } } } } } break; case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1693; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1693; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1693:; } } } } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1694; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1694; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1694:; } } } } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_LOG, CFN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG2F (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1695; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1695:; } } } break; case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPF) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1696; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1696; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1696:; } } } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1697; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1697; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1697:; } } } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1698; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1698; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1698:; } } } } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1699; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1699; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1699:; } } } } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1700; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1700; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1700:; } } } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_POWF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG2 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1701; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1701:; } } } break; case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1702; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1702; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1702:; } } } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1703; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1703; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1703:; } } } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1704; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1704; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1704:; } } } } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1705; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1705; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1705:; } } } } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1706; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1706; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1706:; } } } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG2L (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1707; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1707:; } } } break; case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPL) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1708; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1708; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1708:; } } } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1709; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1709; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1709:; } } } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_POW10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1710; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1710; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1710:; } } } } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1711; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1711; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1711:; } } } } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1712; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1712; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1712:; } } } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_POWL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_LOG2 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1713; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1713:; } } } break; case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1714; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1714; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1714:; } } } } } break; case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1715; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1715; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1715:; } } } } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1716; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1716; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1716:; } } } } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_LOG2, CFN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG10F (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1717; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1717:; } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1718; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1718:; } } } break; case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPF) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1719; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1719; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1719:; } } } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1720; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1720; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1720:; } } } } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1721; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1721; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1721:; } } } } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1722; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1722; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1722:; } } } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_POWF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG10 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1723; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1723:; } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1724; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1724:; } } } break; case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1725; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1725; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1725:; } } } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1726; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1726; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1726:; } } } } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1727; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1727; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1727:; } } } } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1728; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1728; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1728:; } } } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LOG10L (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1729; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1729:; } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1730; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1730:; } } } break; case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXPL) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1731; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1731; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1731:; } } } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_EXP2L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1732; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1732; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1732:; } } } } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1733; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1733; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1733:; } } } } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1734; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1734; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1734:; } } } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_POWL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_LOG10 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1735; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5986, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1735:; } } } break; case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1736; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1736; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1736:; } } } } } break; case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 5999 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ()); break; CASE_CFN_EXP2: x = build_real (type, dconst2); break; CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10; real_from_integer (&dconst10, VOIDmode, 10, SIGNED); x = build_real (type, dconst10); } break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1737; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6025, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = x; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1737; res_op->ops[0] = _r1; } res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1737:; } } } } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { /* #line 6033 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (SCALAR_FLOAT_TYPE_P (type) ) { { /* #line 6034 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree x; switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf); break; CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ()); break; default: gcc_unreachable (); } gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1738; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6050, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = x; { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1738; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1738:; } } } } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_155 (res_op, seq, valueize, type, captures, CFN_LOG10, CFN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXPF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOGF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1739; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1739:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1740; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1740:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXPL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOGL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1741; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1741:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_EXP (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_LOG: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1742; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1742:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP2F (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1743; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1743:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP2 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1744; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1744:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP2L (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1745; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1745:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_EXP2 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_LOG2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1746; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1746:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP10F (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1747; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1747:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP10 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1748; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1748:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_EXP10L (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1749; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1749:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_EXP10 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_LOG10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1750; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1750:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW10F (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1751; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1751:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW10 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1752; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1752:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW10L (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_LOG10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1753; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5990, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1753:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SQRTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1754; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXPF, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1754; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1754:; } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1755; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1755; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1755:; } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1756; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1756; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1756:; } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1757; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1757; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1757:; } } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1758; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6331, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (type, dconst_quarter ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1758:; } } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1759; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6335, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_sixth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1759:; } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1760; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6347, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1760; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1760; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1760:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SQRT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1761; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1761; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1761:; } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1762; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1762; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1762:; } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1763; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1763; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1763:; } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1764; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1764; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1764:; } } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1765; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6331, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (type, dconst_quarter ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1765:; } } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1766; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6335, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_sixth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1766:; } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1767; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6347, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1767; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1767; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1767:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SQRTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1768; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXPL, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1768; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1768:; } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1769; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1769; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1769:; } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1770; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1770; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1770:; } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1771; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1771; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1771:; } } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1772; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6331, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (type, dconst_quarter ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1772:; } } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1773; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6335, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_sixth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1773:; } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1774; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6347, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1774; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1774; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1774:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_SQRT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1775; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1775; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1775:; } } } break; case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1776; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1776; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1776:; } } } break; case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1777; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6114, __FILE__, __LINE__); { res_op->set_op (CFN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1777; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1777:; } } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1778; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6331, __FILE__, __LINE__); { res_op->set_op (CFN_POW, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (type, dconst_quarter ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1778:; } } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1779; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6347, __FILE__, __LINE__); { res_op->set_op (CFN_POW, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1779; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1779; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1779:; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CBRTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1780; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXPF, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1780; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1780:; } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1781; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1781; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1781:; } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1782; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1782; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1782:; } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1783; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1783; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1783:; } } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1784; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6339, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_sixth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1784:; } } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1785; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6343, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_ninth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1785:; } } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1786; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6351, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1786; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1786:; } } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CBRT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1787; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1787; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1787:; } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1788; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1788; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1788:; } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1789; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1789; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1789:; } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1790; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1790; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1790:; } } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1791; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6339, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_sixth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1791:; } } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1792; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6343, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_ninth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1792:; } } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1793; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6351, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1793; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1793:; } } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CBRTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1794; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXPL, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1794; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1794:; } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1795; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1795; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1795:; } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1796; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1796; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1796:; } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1797; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6118, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1797; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1797:; } } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1798; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6339, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_sixth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1798:; } } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1799; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6343, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real_truncate (type, dconst_ninth ()); res_op->resimplify (lseq, valueize); return true; } next_after_fail1799:; } } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1800; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6351, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1800; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1800:; } } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_TANF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_115 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_ATANF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_TAN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_115 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_ATAN)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_TANL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_115 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_ATANL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_TAN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_ATAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_115 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_ATAN)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SINF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_412 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_ATANF, CFN_BUILT_IN_SQRTF, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_412 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_ATAN, CFN_BUILT_IN_SQRT, CFN_BUILT_IN_COPYSIGN)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SINL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_412 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_ATANL, CFN_BUILT_IN_SQRTL, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_SIN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_ATAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6138 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_412 (res_op, seq, valueize, type, captures, CFN_SIN, CFN_ATAN, CFN_SQRT, CFN_COPYSIGN)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SINHF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANHF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_423 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_ATANHF, CFN_BUILT_IN_SQRTF)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SINH (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_423 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_ATANH, CFN_BUILT_IN_SQRT)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SINHL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ATANHL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_423 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_ATANHL, CFN_BUILT_IN_SQRTL)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_SINH (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_ATANH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 }; if (gimple_simplify_423 (res_op, seq, valueize, type, captures, CFN_SINH, CFN_ATANH, CFN_SQRT)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNC (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC, CFN_BUILT_IN_TRUNCF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNC: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_BUILT_IN_TRUNC)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_BUILT_IN_TRUNCF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF16)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_TRUNCF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_TRUNCF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128X)) return true; } } return false; } static bool gimple_simplify_CFN_TRUNC (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_TRUNC: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_TRUNC)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_TRUNCF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOORF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOOR: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOOR)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_TRUNCL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF16)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF16)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF16, CFN_BUILT_IN_TRUNCF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32, CFN_BUILT_IN_TRUNCF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64, CFN_BUILT_IN_TRUNCF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128, CFN_BUILT_IN_TRUNCF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32X)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32X, CFN_BUILT_IN_TRUNCF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64X)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64X, CFN_BUILT_IN_TRUNCF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FLOORF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_FLOORF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128X)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128X, CFN_BUILT_IN_TRUNCF128X)) return true; } } return false; } static bool gimple_simplify_CFN_FLOOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FLOOR: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_FLOOR)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_FLOOR)) return true; } } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6386 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_330 (res_op, seq, valueize, type, captures, CFN_FLOOR, CFN_TRUNC)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEIL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_CEILF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEIL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_CEIL)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_CEILF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF16)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEILF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CEILF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128X)) return true; } } return false; } static bool gimple_simplify_CFN_CEIL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_CEIL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_CEIL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_CEIL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUND (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND, CFN_BUILT_IN_ROUNDF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUND: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_BUILT_IN_ROUND)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_BUILT_IN_ROUNDF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF16)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ROUNDF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_ROUNDF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128X)) return true; } } return false; } static bool gimple_simplify_CFN_ROUND (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_ROUND: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_ROUND)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_ROUND)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT, CFN_BUILT_IN_NEARBYINTF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_BUILT_IN_NEARBYINT)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_BUILT_IN_NEARBYINTF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF16)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_NEARBYINTF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_NEARBYINTF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128X)) return true; } } return false; } static bool gimple_simplify_CFN_NEARBYINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_NEARBYINT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_NEARBYINT)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_NEARBYINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT, CFN_BUILT_IN_RINTF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6410 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_BUILT_IN_RINT)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6432 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_378 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_BUILT_IN_RINTF)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF16)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_RINTF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_RINTF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128X)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128X)) return true; } } return false; } static bool gimple_simplify_CFN_RINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_RINT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_354 (res_op, seq, valueize, type, captures, CFN_RINT)) return true; } } break; default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6203 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_375 (res_op, seq, valueize, type, captures, CFN_RINT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEXPF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (gimple_compositional_complex (_p0, valueize)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { /* #line 6381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (targetm.libc_has_function (function_c99_math_complex, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1801; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6382, __FILE__, __LINE__); { res_op->set_op (COMPLEX_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o3[0])), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1801; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPF, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1801; captures[1] = _r2; } _o1[0] = captures[1]; { tree _o2[1], _r2; { tree _o3[1], _r3; { tree _o4[1], _r4; _o4[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o4[0])), _o4[0]); tem_op.resimplify (lseq, valueize); _r4 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r4) goto next_after_fail1801; _o3[0] = _r4; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CEXPIF, type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1801; captures[2] = _r3; } _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1801; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1801; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1801; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1801; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1801:; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEXP (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (gimple_compositional_complex (_p0, valueize)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { /* #line 6381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (targetm.libc_has_function (function_c99_math_complex, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1802; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6382, __FILE__, __LINE__); { res_op->set_op (COMPLEX_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o3[0])), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1802; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1802; captures[1] = _r2; } _o1[0] = captures[1]; { tree _o2[1], _r2; { tree _o3[1], _r3; { tree _o4[1], _r4; _o4[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o4[0])), _o4[0]); tem_op.resimplify (lseq, valueize); _r4 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r4) goto next_after_fail1802; _o3[0] = _r4; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CEXPI, type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1802; captures[2] = _r3; } _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1802; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1802; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1802; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1802; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1802:; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CEXPL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (gimple_compositional_complex (_p0, valueize)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { /* #line 6381 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (targetm.libc_has_function (function_c99_math_complex, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1803; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6382, __FILE__, __LINE__); { res_op->set_op (COMPLEX_EXPR, type, 2); { tree _o1[2], _r1; { tree _o2[1], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o3[0])), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1803; _o2[0] = _r3; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPL, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1803; captures[1] = _r2; } _o1[0] = captures[1]; { tree _o2[1], _r2; { tree _o3[1], _r3; { tree _o4[1], _r4; _o4[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o4[0])), _o4[0]); tem_op.resimplify (lseq, valueize); _r4 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r4) goto next_after_fail1803; _o3[0] = _r4; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CEXPIL, type, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1803; captures[2] = _r3; } _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1803; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1803; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1803; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1803; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1803:; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IFLOORL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IFLOORL, CFN_BUILT_IN_IFLOOR)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IFLOORL, CFN_BUILT_IN_IFLOORF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1804; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1804:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1805; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1805:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1806; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LFLOORL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1806:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LFLOORL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LFLOORL, CFN_BUILT_IN_LFLOOR)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LFLOORL, CFN_BUILT_IN_LFLOORF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1807; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1807:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1808; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1808:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLFLOORL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOORL, CFN_BUILT_IN_LLFLOOR)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOORL, CFN_BUILT_IN_LLFLOORF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1809; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1809:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1810; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1810:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1811; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LFLOORL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1811:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ICEILL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ICEILL, CFN_BUILT_IN_ICEIL)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ICEILL, CFN_BUILT_IN_ICEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1812; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1812:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1813; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LCEILL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1813:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LCEILL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LCEILL, CFN_BUILT_IN_LCEIL)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LCEILL, CFN_BUILT_IN_LCEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1814; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1814:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLCEILL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLCEILL, CFN_BUILT_IN_LLCEIL)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLCEILL, CFN_BUILT_IN_LLCEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1815; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1815:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1816; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LCEILL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1816:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IROUNDL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IROUNDL, CFN_BUILT_IN_IROUND)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IROUNDL, CFN_BUILT_IN_IROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1817; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1817:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1818; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LROUNDL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1818:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LROUNDL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LROUNDL, CFN_BUILT_IN_LROUND)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LROUNDL, CFN_BUILT_IN_LROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1819; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1819:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLROUNDL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLROUNDL, CFN_BUILT_IN_LLROUND)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLROUNDL, CFN_BUILT_IN_LLROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1820; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1820:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1821; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LROUNDL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1821:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IRINTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IRINTL, CFN_BUILT_IN_IRINT)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IRINTL, CFN_BUILT_IN_IRINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1822; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1822:; } } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1823; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LRINTL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1823:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LRINTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LRINTL, CFN_BUILT_IN_LRINT)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LRINTL, CFN_BUILT_IN_LRINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1824; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1824:; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLRINTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_double_value_p (_q20, valueize)) { { /* #line 6513 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_119 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLRINTL, CFN_BUILT_IN_LLRINT)) return true; } } if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLRINTL, CFN_BUILT_IN_LLRINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1825; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1825:; } } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1826; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LRINTL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1826:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IFLOOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IFLOOR, CFN_BUILT_IN_IFLOORF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1827; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1827:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1828; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1828:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1829; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LFLOOR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1829:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LFLOOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LFLOOR, CFN_BUILT_IN_LFLOORF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1830; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1830:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1831; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1831:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLFLOOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOOR, CFN_BUILT_IN_LLFLOORF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1832; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1832:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1833; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1833:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1834; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LFLOOR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1834:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ICEIL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ICEIL, CFN_BUILT_IN_ICEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1835; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1835:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1836; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LCEIL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1836:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LCEIL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LCEIL, CFN_BUILT_IN_LCEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1837; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1837:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLCEIL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLCEIL, CFN_BUILT_IN_LLCEILF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1838; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1838:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1839; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LCEIL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1839:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IROUND (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IROUND, CFN_BUILT_IN_IROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1840; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1840:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1841; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LROUND, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1841:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LROUND (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LROUND, CFN_BUILT_IN_LROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1842; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1842:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLROUND (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLROUND, CFN_BUILT_IN_LLROUNDF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1843; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1843:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1844; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LROUND, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1844:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IRINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IRINT, CFN_BUILT_IN_IRINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1845; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1845:; } } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1846; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LRINT, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1846:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LRINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LRINT, CFN_BUILT_IN_LRINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1847; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1847:; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLRINT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (gimple_float_value_p (_q20, valueize)) { { /* #line 6523 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_122 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLRINT, CFN_BUILT_IN_LLRINTF)) return true; } } break; } default:; } } break; default:; } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1848; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1848:; } } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1849; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LRINT, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1849:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IFLOORF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1850; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1850:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1851; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1851:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1852; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LFLOORF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1852:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LFLOORF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1853; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1853:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1854; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1854:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLFLOORF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6528 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1855; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6533, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1855:; } } } if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1856; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1856:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1857; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LFLOORF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1857:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_ICEILF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1858; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1858:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1859; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LCEILF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1859:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LCEILF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1860; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1860:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLCEILF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1861; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1861:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1862; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LCEILF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1862:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IROUNDF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1863; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1863:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1864; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LROUNDF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1864:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LROUNDF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1865; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1865:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLROUNDF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1866; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6542, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1866:; } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1867; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LROUNDF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1867:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_IRINTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1868; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1868:; } } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6556 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1869; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6560, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LRINTF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1869:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LRINTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1870; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1870:; } } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_LLRINTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (integer_valued_real_p (_p0)) { { /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6535 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!flag_errno_math ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1871; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6548, __FILE__, __LINE__); { res_op->set_op (FIX_TRUNC_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1871:; } } } } { /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6550 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_p () ) { /* #line 6563 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1872; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6567, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_LRINTF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1872:; } } } return false; } static bool gimple_simplify_CFN_BUILT_IN_CPROJF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 6572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_INFINITIES (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1873; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6573, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1873:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { if (tree_expr_nonnegative_p (_q21)) { { /* #line 6579 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6579 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1874; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6580, __FILE__, __LINE__); { tree tem; tem = build_complex_inf (type, false); res_op->set_value (tem); return true; } next_after_fail1874:; } } } break; } default:; } switch (TREE_CODE (_q21)) { case REAL_CST: { { /* #line 6585 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6585 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1875; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6586, __FILE__, __LINE__); { tree tem; tem = build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign); res_op->set_value (tem); return true; } next_after_fail1875:; } } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CPROJ (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 6572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_INFINITIES (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1876; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6573, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1876:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { if (tree_expr_nonnegative_p (_q21)) { { /* #line 6579 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6579 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1877; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6580, __FILE__, __LINE__); { tree tem; tem = build_complex_inf (type, false); res_op->set_value (tem); return true; } next_after_fail1877:; } } } break; } default:; } switch (TREE_CODE (_q21)) { case REAL_CST: { { /* #line 6585 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6585 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1878; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6586, __FILE__, __LINE__); { tree tem; tem = build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign); res_op->set_value (tem); return true; } next_after_fail1878:; } } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_CPROJL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 6572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; /* #line 6572 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!HONOR_INFINITIES (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1879; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6573, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1879:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COMPLEX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { if (tree_expr_nonnegative_p (_q21)) { { /* #line 6579 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6579 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1880; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6580, __FILE__, __LINE__); { tree tem; tem = build_complex_inf (type, false); res_op->set_value (tem); return true; } next_after_fail1880:; } } } break; } default:; } switch (TREE_CODE (_q21)) { case REAL_CST: { { /* #line 6585 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; /* #line 6585 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinf (TREE_REAL_CST_PTR (captures[1])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1881; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6586, __FILE__, __LINE__); { tree tem; tem = build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign); res_op->set_value (tem); return true; } next_after_fail1881:; } } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIGNBITF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_8 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIGNBITF)) return true; } } { /* #line 6800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIGNBITF)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIGNBIT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_8 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIGNBIT)) return true; } } { /* #line 6800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIGNBIT)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SIGNBITL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_8 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIGNBITL)) return true; } } { /* #line 6800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIGNBITL)) return true; } return false; } static bool gimple_simplify_CFN_SIGNBIT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonnegative_p (_p0)) { { /* #line 6795 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_8 (res_op, seq, valueize, type, captures, CFN_SIGNBIT)) return true; } } { /* #line 6800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_SIGNBIT)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_PARITY (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_368 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITY)) return true; } break; } default:; } } break; default:; } { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITY)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_PARITYL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_368 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYL)) return true; } break; } default:; } } break; default:; } { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYL)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_PARITYLL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_368 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYLL)) return true; } break; } default:; } } break; default:; } { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYLL)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_PARITYIMAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_368 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYIMAX)) return true; } break; } default:; } } break; default:; } { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYIMAX)) return true; } return false; } static bool gimple_simplify_CFN_PARITY (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7190 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_368 (res_op, seq, valueize, type, captures, CFN_PARITY)) return true; } break; } default:; } } break; default:; } { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_PARITY)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POPCOUNT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNT)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POPCOUNTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTL)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POPCOUNTLL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTLL)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POPCOUNTIMAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTIMAX)) return true; } return false; } static bool gimple_simplify_CFN_POPCOUNT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { { /* #line 7202 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_234 (res_op, seq, valueize, type, captures, CFN_POPCOUNT)) return true; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FFS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonzero_p (_p0)) { { /* #line 7302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_407 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FFS, CFN_BUILT_IN_CTZ)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FFSL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonzero_p (_p0)) { { /* #line 7302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_407 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FFSL, CFN_BUILT_IN_CTZL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FFSLL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonzero_p (_p0)) { { /* #line 7302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_407 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FFSLL, CFN_BUILT_IN_CTZLL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_FFSIMAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonzero_p (_p0)) { { /* #line 7302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_407 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FFSIMAX, CFN_BUILT_IN_CTZIMAX)) return true; } } return false; } static bool gimple_simplify_CFN_FFS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { if (tree_expr_nonzero_p (_p0)) { { /* #line 7302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_407 (res_op, seq, valueize, type, captures, CFN_FFS, CFN_CTZ)) return true; } } return false; } static bool gimple_simplify_CFN_REDUC_PLUS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case VECTOR_CST: { { /* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 }; if (gimple_simplify_104 (res_op, seq, valueize, type, captures, CFN_REDUC_PLUS)) return true; } break; } default:; } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_104 (res_op, seq, valueize, type, captures, CFN_REDUC_PLUS)) return true; } break; } default:; } break; } case CONSTRUCTOR: { { /* #line 7558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_109 (res_op, seq, valueize, type, captures, CFN_REDUC_PLUS)) return true; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1882; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (PLUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_PLUS, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1882; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_PLUS, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1882; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1882:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_IOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case VECTOR_CST: { { /* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 }; if (gimple_simplify_104 (res_op, seq, valueize, type, captures, CFN_REDUC_IOR)) return true; } break; } default:; } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_104 (res_op, seq, valueize, type, captures, CFN_REDUC_IOR)) return true; } break; } default:; } break; } case CONSTRUCTOR: { { /* #line 7558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_109 (res_op, seq, valueize, type, captures, CFN_REDUC_IOR)) return true; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1883; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (BIT_IOR_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_IOR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1883; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_IOR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1883; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1883:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_XOR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case VECTOR_CST: { { /* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 }; if (gimple_simplify_104 (res_op, seq, valueize, type, captures, CFN_REDUC_XOR)) return true; } break; } default:; } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7543 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_104 (res_op, seq, valueize, type, captures, CFN_REDUC_XOR)) return true; } break; } default:; } break; } case CONSTRUCTOR: { { /* #line 7558 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_109 (res_op, seq, valueize, type, captures, CFN_REDUC_XOR)) return true; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1884; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_XOR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1884; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_XOR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1884; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1884:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_MAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1885; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (MAX_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_MAX, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1885; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_MAX, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1885; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1885:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_MIN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1886; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (MIN_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_MIN, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1886; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_MIN, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1886; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1886:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_FMAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FMAX: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1887; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (CFN_FMAX, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_FMAX, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1887; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_FMAX, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1887; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1887:; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_FMIN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FMIN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1888; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (CFN_FMIN, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_FMIN, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1888; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_FMIN, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1888; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1888:; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_REDUC_AND (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case VECTOR_CST: { { /* #line 7571 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1889; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7571, __FILE__, __LINE__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_AND, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1889; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_REDUC_AND, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1889; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1889:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper code, const tree type, tree _p0) { switch (code.get_rep()) { case ABS_EXPR: return gimple_simplify_ABS_EXPR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_COSF: return gimple_simplify_CFN_BUILT_IN_COSF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_COS: return gimple_simplify_CFN_BUILT_IN_COS (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_COSL: return gimple_simplify_CFN_BUILT_IN_COSL (res_op, seq, valueize, code, type, _p0); case -CFN_COS: return gimple_simplify_CFN_COS (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_COSHF: return gimple_simplify_CFN_BUILT_IN_COSHF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_COSH: return gimple_simplify_CFN_BUILT_IN_COSH (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_COSHL: return gimple_simplify_CFN_BUILT_IN_COSHL (res_op, seq, valueize, code, type, _p0); case -CFN_COSH: return gimple_simplify_CFN_COSH (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CCOSF: return gimple_simplify_CFN_BUILT_IN_CCOSF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CCOS: return gimple_simplify_CFN_BUILT_IN_CCOS (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CCOSL: return gimple_simplify_CFN_BUILT_IN_CCOSL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CCOSHF: return gimple_simplify_CFN_BUILT_IN_CCOSHF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CCOSH: return gimple_simplify_CFN_BUILT_IN_CCOSH (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CCOSHL: return gimple_simplify_CFN_BUILT_IN_CCOSHL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CABSF: return gimple_simplify_CFN_BUILT_IN_CABSF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CABS: return gimple_simplify_CFN_BUILT_IN_CABS (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CABSL: return gimple_simplify_CFN_BUILT_IN_CABSL (res_op, seq, valueize, code, type, _p0); case BIT_NOT_EXPR: return gimple_simplify_BIT_NOT_EXPR (res_op, seq, valueize, code, type, _p0); case ABSU_EXPR: return gimple_simplify_ABSU_EXPR (res_op, seq, valueize, code, type, _p0); case NEGATE_EXPR: return gimple_simplify_NEGATE_EXPR (res_op, seq, valueize, code, type, _p0); CASE_CONVERT: return gimple_simplify_CONVERT_EXPR (res_op, seq, valueize, code, type, _p0); case VIEW_CONVERT_EXPR: return gimple_simplify_VIEW_CONVERT_EXPR (res_op, seq, valueize, code, type, _p0); case FLOAT_EXPR: return gimple_simplify_FLOAT_EXPR (res_op, seq, valueize, code, type, _p0); case FIX_TRUNC_EXPR: return gimple_simplify_FIX_TRUNC_EXPR (res_op, seq, valueize, code, type, _p0); case PAREN_EXPR: return gimple_simplify_PAREN_EXPR (res_op, seq, valueize, code, type, _p0); case REALPART_EXPR: return gimple_simplify_REALPART_EXPR (res_op, seq, valueize, code, type, _p0); case IMAGPART_EXPR: return gimple_simplify_IMAGPART_EXPR (res_op, seq, valueize, code, type, _p0); case CONJ_EXPR: return gimple_simplify_CONJ_EXPR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_BSWAP16: return gimple_simplify_CFN_BUILT_IN_BSWAP16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_BSWAP32: return gimple_simplify_CFN_BUILT_IN_BSWAP32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_BSWAP64: return gimple_simplify_CFN_BUILT_IN_BSWAP64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_BSWAP128: return gimple_simplify_CFN_BUILT_IN_BSWAP128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOGF: return gimple_simplify_CFN_BUILT_IN_LOGF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG: return gimple_simplify_CFN_BUILT_IN_LOG (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOGL: return gimple_simplify_CFN_BUILT_IN_LOGL (res_op, seq, valueize, code, type, _p0); case -CFN_LOG: return gimple_simplify_CFN_LOG (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG2F: return gimple_simplify_CFN_BUILT_IN_LOG2F (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG2: return gimple_simplify_CFN_BUILT_IN_LOG2 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG2L: return gimple_simplify_CFN_BUILT_IN_LOG2L (res_op, seq, valueize, code, type, _p0); case -CFN_LOG2: return gimple_simplify_CFN_LOG2 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG10F: return gimple_simplify_CFN_BUILT_IN_LOG10F (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG10: return gimple_simplify_CFN_BUILT_IN_LOG10 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LOG10L: return gimple_simplify_CFN_BUILT_IN_LOG10L (res_op, seq, valueize, code, type, _p0); case -CFN_LOG10: return gimple_simplify_CFN_LOG10 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXPF: return gimple_simplify_CFN_BUILT_IN_EXPF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP: return gimple_simplify_CFN_BUILT_IN_EXP (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXPL: return gimple_simplify_CFN_BUILT_IN_EXPL (res_op, seq, valueize, code, type, _p0); case -CFN_EXP: return gimple_simplify_CFN_EXP (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP2F: return gimple_simplify_CFN_BUILT_IN_EXP2F (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP2: return gimple_simplify_CFN_BUILT_IN_EXP2 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP2L: return gimple_simplify_CFN_BUILT_IN_EXP2L (res_op, seq, valueize, code, type, _p0); case -CFN_EXP2: return gimple_simplify_CFN_EXP2 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP10F: return gimple_simplify_CFN_BUILT_IN_EXP10F (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP10: return gimple_simplify_CFN_BUILT_IN_EXP10 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_EXP10L: return gimple_simplify_CFN_BUILT_IN_EXP10L (res_op, seq, valueize, code, type, _p0); case -CFN_EXP10: return gimple_simplify_CFN_EXP10 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POW10F: return gimple_simplify_CFN_BUILT_IN_POW10F (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POW10: return gimple_simplify_CFN_BUILT_IN_POW10 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POW10L: return gimple_simplify_CFN_BUILT_IN_POW10L (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SQRTF: return gimple_simplify_CFN_BUILT_IN_SQRTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SQRT: return gimple_simplify_CFN_BUILT_IN_SQRT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SQRTL: return gimple_simplify_CFN_BUILT_IN_SQRTL (res_op, seq, valueize, code, type, _p0); case -CFN_SQRT: return gimple_simplify_CFN_SQRT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CBRTF: return gimple_simplify_CFN_BUILT_IN_CBRTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CBRT: return gimple_simplify_CFN_BUILT_IN_CBRT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CBRTL: return gimple_simplify_CFN_BUILT_IN_CBRTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TANF: return gimple_simplify_CFN_BUILT_IN_TANF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TAN: return gimple_simplify_CFN_BUILT_IN_TAN (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TANL: return gimple_simplify_CFN_BUILT_IN_TANL (res_op, seq, valueize, code, type, _p0); case -CFN_TAN: return gimple_simplify_CFN_TAN (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SINF: return gimple_simplify_CFN_BUILT_IN_SINF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SIN: return gimple_simplify_CFN_BUILT_IN_SIN (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SINL: return gimple_simplify_CFN_BUILT_IN_SINL (res_op, seq, valueize, code, type, _p0); case -CFN_SIN: return gimple_simplify_CFN_SIN (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SINHF: return gimple_simplify_CFN_BUILT_IN_SINHF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SINH: return gimple_simplify_CFN_BUILT_IN_SINH (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SINHL: return gimple_simplify_CFN_BUILT_IN_SINHL (res_op, seq, valueize, code, type, _p0); case -CFN_SINH: return gimple_simplify_CFN_SINH (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF: return gimple_simplify_CFN_BUILT_IN_TRUNCF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNC: return gimple_simplify_CFN_BUILT_IN_TRUNC (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCL: return gimple_simplify_CFN_BUILT_IN_TRUNCL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF16: return gimple_simplify_CFN_BUILT_IN_TRUNCF16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF32: return gimple_simplify_CFN_BUILT_IN_TRUNCF32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF64: return gimple_simplify_CFN_BUILT_IN_TRUNCF64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF128: return gimple_simplify_CFN_BUILT_IN_TRUNCF128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF32X: return gimple_simplify_CFN_BUILT_IN_TRUNCF32X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF64X: return gimple_simplify_CFN_BUILT_IN_TRUNCF64X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_TRUNCF128X: return gimple_simplify_CFN_BUILT_IN_TRUNCF128X (res_op, seq, valueize, code, type, _p0); case -CFN_TRUNC: return gimple_simplify_CFN_TRUNC (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF: return gimple_simplify_CFN_BUILT_IN_FLOORF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOOR: return gimple_simplify_CFN_BUILT_IN_FLOOR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORL: return gimple_simplify_CFN_BUILT_IN_FLOORL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF16: return gimple_simplify_CFN_BUILT_IN_FLOORF16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF32: return gimple_simplify_CFN_BUILT_IN_FLOORF32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF64: return gimple_simplify_CFN_BUILT_IN_FLOORF64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF128: return gimple_simplify_CFN_BUILT_IN_FLOORF128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF32X: return gimple_simplify_CFN_BUILT_IN_FLOORF32X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF64X: return gimple_simplify_CFN_BUILT_IN_FLOORF64X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FLOORF128X: return gimple_simplify_CFN_BUILT_IN_FLOORF128X (res_op, seq, valueize, code, type, _p0); case -CFN_FLOOR: return gimple_simplify_CFN_FLOOR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF: return gimple_simplify_CFN_BUILT_IN_CEILF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEIL: return gimple_simplify_CFN_BUILT_IN_CEIL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILL: return gimple_simplify_CFN_BUILT_IN_CEILL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF16: return gimple_simplify_CFN_BUILT_IN_CEILF16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF32: return gimple_simplify_CFN_BUILT_IN_CEILF32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF64: return gimple_simplify_CFN_BUILT_IN_CEILF64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF128: return gimple_simplify_CFN_BUILT_IN_CEILF128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF32X: return gimple_simplify_CFN_BUILT_IN_CEILF32X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF64X: return gimple_simplify_CFN_BUILT_IN_CEILF64X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEILF128X: return gimple_simplify_CFN_BUILT_IN_CEILF128X (res_op, seq, valueize, code, type, _p0); case -CFN_CEIL: return gimple_simplify_CFN_CEIL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF: return gimple_simplify_CFN_BUILT_IN_ROUNDF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUND: return gimple_simplify_CFN_BUILT_IN_ROUND (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDL: return gimple_simplify_CFN_BUILT_IN_ROUNDL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF16: return gimple_simplify_CFN_BUILT_IN_ROUNDF16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF32: return gimple_simplify_CFN_BUILT_IN_ROUNDF32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF64: return gimple_simplify_CFN_BUILT_IN_ROUNDF64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF128: return gimple_simplify_CFN_BUILT_IN_ROUNDF128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF32X: return gimple_simplify_CFN_BUILT_IN_ROUNDF32X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF64X: return gimple_simplify_CFN_BUILT_IN_ROUNDF64X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ROUNDF128X: return gimple_simplify_CFN_BUILT_IN_ROUNDF128X (res_op, seq, valueize, code, type, _p0); case -CFN_ROUND: return gimple_simplify_CFN_ROUND (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINT: return gimple_simplify_CFN_BUILT_IN_NEARBYINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTL: return gimple_simplify_CFN_BUILT_IN_NEARBYINTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF16: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF32: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF64: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF128: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF32X: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF32X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF64X: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF64X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_NEARBYINTF128X: return gimple_simplify_CFN_BUILT_IN_NEARBYINTF128X (res_op, seq, valueize, code, type, _p0); case -CFN_NEARBYINT: return gimple_simplify_CFN_NEARBYINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF: return gimple_simplify_CFN_BUILT_IN_RINTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINT: return gimple_simplify_CFN_BUILT_IN_RINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTL: return gimple_simplify_CFN_BUILT_IN_RINTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF16: return gimple_simplify_CFN_BUILT_IN_RINTF16 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF32: return gimple_simplify_CFN_BUILT_IN_RINTF32 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF64: return gimple_simplify_CFN_BUILT_IN_RINTF64 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF128: return gimple_simplify_CFN_BUILT_IN_RINTF128 (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF32X: return gimple_simplify_CFN_BUILT_IN_RINTF32X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF64X: return gimple_simplify_CFN_BUILT_IN_RINTF64X (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_RINTF128X: return gimple_simplify_CFN_BUILT_IN_RINTF128X (res_op, seq, valueize, code, type, _p0); case -CFN_RINT: return gimple_simplify_CFN_RINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEXPF: return gimple_simplify_CFN_BUILT_IN_CEXPF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEXP: return gimple_simplify_CFN_BUILT_IN_CEXP (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CEXPL: return gimple_simplify_CFN_BUILT_IN_CEXPL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IFLOORL: return gimple_simplify_CFN_BUILT_IN_IFLOORL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LFLOORL: return gimple_simplify_CFN_BUILT_IN_LFLOORL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLFLOORL: return gimple_simplify_CFN_BUILT_IN_LLFLOORL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ICEILL: return gimple_simplify_CFN_BUILT_IN_ICEILL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LCEILL: return gimple_simplify_CFN_BUILT_IN_LCEILL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLCEILL: return gimple_simplify_CFN_BUILT_IN_LLCEILL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IROUNDL: return gimple_simplify_CFN_BUILT_IN_IROUNDL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LROUNDL: return gimple_simplify_CFN_BUILT_IN_LROUNDL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLROUNDL: return gimple_simplify_CFN_BUILT_IN_LLROUNDL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IRINTL: return gimple_simplify_CFN_BUILT_IN_IRINTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LRINTL: return gimple_simplify_CFN_BUILT_IN_LRINTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLRINTL: return gimple_simplify_CFN_BUILT_IN_LLRINTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IFLOOR: return gimple_simplify_CFN_BUILT_IN_IFLOOR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LFLOOR: return gimple_simplify_CFN_BUILT_IN_LFLOOR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLFLOOR: return gimple_simplify_CFN_BUILT_IN_LLFLOOR (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ICEIL: return gimple_simplify_CFN_BUILT_IN_ICEIL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LCEIL: return gimple_simplify_CFN_BUILT_IN_LCEIL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLCEIL: return gimple_simplify_CFN_BUILT_IN_LLCEIL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IROUND: return gimple_simplify_CFN_BUILT_IN_IROUND (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LROUND: return gimple_simplify_CFN_BUILT_IN_LROUND (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLROUND: return gimple_simplify_CFN_BUILT_IN_LLROUND (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IRINT: return gimple_simplify_CFN_BUILT_IN_IRINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LRINT: return gimple_simplify_CFN_BUILT_IN_LRINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLRINT: return gimple_simplify_CFN_BUILT_IN_LLRINT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IFLOORF: return gimple_simplify_CFN_BUILT_IN_IFLOORF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LFLOORF: return gimple_simplify_CFN_BUILT_IN_LFLOORF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLFLOORF: return gimple_simplify_CFN_BUILT_IN_LLFLOORF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_ICEILF: return gimple_simplify_CFN_BUILT_IN_ICEILF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LCEILF: return gimple_simplify_CFN_BUILT_IN_LCEILF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLCEILF: return gimple_simplify_CFN_BUILT_IN_LLCEILF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IROUNDF: return gimple_simplify_CFN_BUILT_IN_IROUNDF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LROUNDF: return gimple_simplify_CFN_BUILT_IN_LROUNDF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLROUNDF: return gimple_simplify_CFN_BUILT_IN_LLROUNDF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_IRINTF: return gimple_simplify_CFN_BUILT_IN_IRINTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LRINTF: return gimple_simplify_CFN_BUILT_IN_LRINTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_LLRINTF: return gimple_simplify_CFN_BUILT_IN_LLRINTF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CPROJF: return gimple_simplify_CFN_BUILT_IN_CPROJF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CPROJ: return gimple_simplify_CFN_BUILT_IN_CPROJ (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_CPROJL: return gimple_simplify_CFN_BUILT_IN_CPROJL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SIGNBITF: return gimple_simplify_CFN_BUILT_IN_SIGNBITF (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SIGNBIT: return gimple_simplify_CFN_BUILT_IN_SIGNBIT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_SIGNBITL: return gimple_simplify_CFN_BUILT_IN_SIGNBITL (res_op, seq, valueize, code, type, _p0); case -CFN_SIGNBIT: return gimple_simplify_CFN_SIGNBIT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_PARITY: return gimple_simplify_CFN_BUILT_IN_PARITY (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_PARITYL: return gimple_simplify_CFN_BUILT_IN_PARITYL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_PARITYLL: return gimple_simplify_CFN_BUILT_IN_PARITYLL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_PARITYIMAX: return gimple_simplify_CFN_BUILT_IN_PARITYIMAX (res_op, seq, valueize, code, type, _p0); case -CFN_PARITY: return gimple_simplify_CFN_PARITY (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POPCOUNT: return gimple_simplify_CFN_BUILT_IN_POPCOUNT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POPCOUNTL: return gimple_simplify_CFN_BUILT_IN_POPCOUNTL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POPCOUNTLL: return gimple_simplify_CFN_BUILT_IN_POPCOUNTLL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_POPCOUNTIMAX: return gimple_simplify_CFN_BUILT_IN_POPCOUNTIMAX (res_op, seq, valueize, code, type, _p0); case -CFN_POPCOUNT: return gimple_simplify_CFN_POPCOUNT (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FFS: return gimple_simplify_CFN_BUILT_IN_FFS (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FFSL: return gimple_simplify_CFN_BUILT_IN_FFSL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FFSLL: return gimple_simplify_CFN_BUILT_IN_FFSLL (res_op, seq, valueize, code, type, _p0); case -CFN_BUILT_IN_FFSIMAX: return gimple_simplify_CFN_BUILT_IN_FFSIMAX (res_op, seq, valueize, code, type, _p0); case -CFN_FFS: return gimple_simplify_CFN_FFS (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_PLUS: return gimple_simplify_CFN_REDUC_PLUS (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_IOR: return gimple_simplify_CFN_REDUC_IOR (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_XOR: return gimple_simplify_CFN_REDUC_XOR (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_MAX: return gimple_simplify_CFN_REDUC_MAX (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_MIN: return gimple_simplify_CFN_REDUC_MIN (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_FMAX: return gimple_simplify_CFN_REDUC_FMAX (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_FMIN: return gimple_simplify_CFN_REDUC_FMIN (res_op, seq, valueize, code, type, _p0); case -CFN_REDUC_AND: return gimple_simplify_CFN_REDUC_AND (res_op, seq, valueize, code, type, _p0); default:; } return false; } static bool gimple_simplify_BIT_XOR_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20))) { switch (TREE_CODE (_q41)) { case INTEGER_CST: { if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q41 }; if (gimple_simplify_31 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30))) { if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { { /* #line 170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q20, _q31 }; if (gimple_simplify_31 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RSHIFT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); 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 170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q61 }; if (gimple_simplify_31 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; } default:; } } break; default:; } } if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case INTEGER_CST: { if ((_q31 == _q50 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q50, 0) && types_match (_q31, _q50))) { { /* #line 170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q50, _p0, _q51 }; if (gimple_simplify_31 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } if (integer_zerop (_p1)) { { /* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1890; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1890:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_383 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_430 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_383 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_430 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_435 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_435 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); { /* #line 1042 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q60 }; if (gimple_simplify_430 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } } switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_430 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_435 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_435 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1094 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 }; if (gimple_simplify_455 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1094 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 }; if (gimple_simplify_455 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1094 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 }; if (gimple_simplify_455 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 1094 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 }; if (gimple_simplify_455 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 1099 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 }; if (gimple_simplify_458 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1099 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 }; if (gimple_simplify_458 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1099 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 }; if (gimple_simplify_458 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 1099 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 }; if (gimple_simplify_458 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_AND_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1891; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1891:; } } if (integer_all_onesp (_p1)) { { /* #line 1206 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1892; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1892:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_89 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_89 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_57 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_53 (res_op, seq, valueize, type, captures)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_57 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_66 (res_op, seq, valueize, type, captures)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_67 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_89 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_89 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_57 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_57 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_67 (res_op, seq, valueize, type, captures)) return true; } } } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_69 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_66 (res_op, seq, valueize, type, captures)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_69 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_131 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); { /* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 }; if (gimple_simplify_310 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 }; if (gimple_simplify_310 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; case INTEGER_CST: { { /* #line 1461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 }; if (gimple_simplify_45 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 }; if (gimple_simplify_310 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1454 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_310 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; case INTEGER_CST: { { /* #line 1461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_45 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } { /* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1 }; if (gimple_simplify_223 (res_op, seq, valueize, type, captures)) return true; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_AND_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_138 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_170 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_283 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_246 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_28 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (gimple_truth_valued_p (_q20, valueize)) { if (gimple_truth_valued_p (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1893; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1893; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1893:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1894; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1894; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1894:; } } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1895; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1895; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1895:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1896; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1896; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1896:; } } } break; } default:; } } break; default:; } } } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_truth_valued_p (_q50, valueize)) { if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21))) { if (gimple_truth_valued_p (_q51, valueize)) { { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1897; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1897; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1897:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1898; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1898; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1898:; } } } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_truth_valued_p (_q50, valueize)) { if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { if (gimple_truth_valued_p (_q51, valueize)) { { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1899; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1899; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1899:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1900; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1900; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1900:; } } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { if (gimple_truth_valued_p (_p1, valueize)) { { /* #line 1780 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_60 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1 }; if (gimple_simplify_174 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } } } if (gimple_truth_valued_p (_p0, valueize)) { { tree _p1_pops[1]; if (gimple_logical_inverted_value (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_60 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 }; if (gimple_simplify_223 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 1837 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 }; if (gimple_simplify_174 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_254 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_311 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; } case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_47 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_338 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_47 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_338 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_112 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_52 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_52 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q80)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q90)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } 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 SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q80)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q90)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case LE_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case EQ_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case NE_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case GE_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case GT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case EQ_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case NE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_XOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } 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 SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3313 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_XOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_172 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1901; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1901; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1901; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1901:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1902; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1902; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1902; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1902:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1903; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1903; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1903; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1903:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR, UNGE_EXPR)) return true; } } if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 4688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 }; if (gimple_simplify_320 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 4696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 }; if (gimple_simplify_90 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR, UNGT_EXPR)) return true; } } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR, NE_EXPR)) return true; } } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR, EQ_EXPR)) return true; } } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR, UNLT_EXPR)) return true; } } if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 4688 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 }; if (gimple_simplify_320 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 4696 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _p0, _q20 }; if (gimple_simplify_90 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR, UNLE_EXPR)) return true; } } break; } case UNORDERED_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR)) return true; } } break; } case ORDERED_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } } break; } case UNLT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, UNLT_EXPR, GE_EXPR, GE_EXPR)) return true; } } break; } case UNLE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, UNLE_EXPR, GT_EXPR, GT_EXPR)) return true; } } break; } case UNGT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, UNGT_EXPR, LE_EXPR, LE_EXPR)) return true; } } break; } case UNGE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, UNGE_EXPR, LT_EXPR, LT_EXPR)) return true; } } break; } case UNEQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR)) return true; } } break; } case LTGT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_truep (_p1)) { { /* #line 4664 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_84 (res_op, seq, valueize, type, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_PARITY: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_PARITY: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_370 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITY)) return true; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_PARITYL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_PARITYL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_370 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYL)) return true; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_PARITYLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_PARITYLL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_370 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYLL)) return true; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_PARITYIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_PARITYIMAX: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_370 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_PARITYIMAX)) return true; } } break; default:; } } break; default:; } } break; case CFN_PARITY: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_PARITY: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7195 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_370 (res_op, seq, valueize, type, captures, CFN_PARITY)) return true; } } break; default:; } } break; default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_PLUS_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_zerop (_p1)) { { /* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1904; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1904:; } } if (real_zerop (_p1)) { { /* #line 198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_394 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_12 (res_op, seq, valueize, type, captures, PLUS_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_12 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_383 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_383 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } if (real_zerop (_p0)) { { /* #line 198 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_394 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } { /* #line 1252 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_483 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 1252 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 }; if (gimple_simplify_483 (res_op, seq, valueize, type, captures)) return true; } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_46 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_46 (res_op, seq, valueize, type, captures)) return true; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_69 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_178 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q70)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a5); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q80)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case LE_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case EQ_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case NE_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case GE_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case GT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case EQ_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case NE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q21)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q21)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_69 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_178 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { tree _q30 = _q20_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { tree _q70 = _q21_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q70)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_AND_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_374 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q30 }; if (gimple_simplify_269 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { tree _q40 = _q30_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { tree _q80 = _q31_pops[0]; switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q80)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a3); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a3); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_360 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 }; if (gimple_simplify_269 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; if (gimple_simplify_269 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 }; if (gimple_simplify_269 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR)) return true; } } } 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 }; if (gimple_simplify_156 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR)) return true; } } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_371 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_316 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_316 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR)) return true; } } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_316 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_316 (res_op, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_5 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_5 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR)) return true; } } } 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 }; if (gimple_simplify_156 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_273 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_273 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 }; if (gimple_simplify_161 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 }; if (gimple_simplify_161 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _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 2706 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (TREE_CODE (TREE_TYPE (captures[1])) == INTEGER_TYPE && TREE_CODE (type) == INTEGER_TYPE && TYPE_PRECISION (type) > TYPE_PRECISION (TREE_TYPE (captures[1])) && int_fits_type_p (captures[2], TREE_TYPE (captures[1])) ) { { /* #line 2712 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ wi::overflow_type min_ovf = wi::OVF_OVERFLOW, max_ovf = wi::OVF_OVERFLOW; tree inner_type = TREE_TYPE (captures[1]); wide_int w1 = wide_int::from (wi::to_wide (captures[2]), TYPE_PRECISION (inner_type), TYPE_SIGN (inner_type)); value_range vr; if (get_global_range_query ()->range_of_expr (vr, captures[1]) && vr.kind () == VR_RANGE) { wide_int wmin0 = vr.lower_bound (); wide_int wmax0 = vr.upper_bound (); wi::add (wmin0, w1, TYPE_SIGN (inner_type), &min_ovf); wi::add (wmax0, w1, TYPE_SIGN (inner_type), &max_ovf); } /* #line 2732 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (min_ovf == wi::OVF_NONE && max_ovf == wi::OVF_NONE ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1905; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2733, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = wide_int_to_tree (TREE_TYPE (captures[1]), w1); gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1905; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1905:; } } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_322 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_427 (res_op, seq, valueize, type, captures)) return true; } } if (integer_each_onep (_p1)) { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_446 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_427 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (integer_each_onep (_p1)) { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_446 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_302 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } 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 }; if (gimple_simplify_302 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_331 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } 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 }; if (gimple_simplify_331 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 3004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 }; if (gimple_simplify_472 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 3004 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 }; if (gimple_simplify_472 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 3021 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 }; /* #line 3021 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && tree_fits_uhwi_p (captures[2]) && tree_to_uhwi (captures[2]) < element_precision (type) && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) < element_precision (type) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || optab_handler (smul_optab, TYPE_MODE (type)) != CODE_FOR_nothing) ) { { /* #line 3029 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree t = type; if (!TYPE_OVERFLOW_WRAPS (t)) t = unsigned_type_for (t); unsigned int prec = element_precision (type); wide_int w = wi::set_bit_in_zero (tree_to_uhwi (captures[2]), prec); w += wi::set_bit_in_zero (tree_to_uhwi (captures[4]), prec); tree cst = wide_int_to_tree (VECTOR_TYPE_P (t) ? TREE_TYPE (t) : t, w); cst = build_uniform_cst (t, cst); gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1906; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3037, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (t != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (t, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1906; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = cst; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1906; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1906:; } } } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q80)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q90)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q70, _q90, _q100, _q101 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3301 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q40, _q31, _q70, _q80, _q81 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_230 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case TRUNC_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } case CEIL_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case CEIL_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } case FLOOR_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case FLOOR_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } case ROUND_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case ROUND_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case TRUNC_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } case CEIL_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case CEIL_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } case FLOOR_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case FLOOR_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } case ROUND_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case ROUND_MOD_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } case TRUNC_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR)) return true; } } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } case CEIL_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case CEIL_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR)) return true; } } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case CEIL_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR, CEIL_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } case FLOOR_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case FLOOR_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR)) return true; } } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case FLOOR_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } case ROUND_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case ROUND_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR)) return true; } } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case ROUND_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_272 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR, ROUND_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1907; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail1907:; } } } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1908; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_real (type, dconst2); res_op->resimplify (lseq, valueize); return true; } next_after_fail1908:; } else { /* #line 3878 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1909; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = build_int_cst (type, 2); res_op->resimplify (lseq, valueize); return true; } next_after_fail1909:; } } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1910; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1910; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1910; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1910:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1911; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1911; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1911; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1911:; } 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 }; if (gimple_simplify_342 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1912; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1912; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1912; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1912:; } break; } case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a2); _q42 = do_valueize (valueize, _q42); 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 }; if (gimple_simplify_342 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a2); _q32 = do_valueize (valueize, _q32); 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 }; if (gimple_simplify_342 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); 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 }; if (gimple_simplify_342 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_135 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case VEC_PERM_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if (gimple_vec_same_elem_p (_q31, valueize)) { 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 }; if (gimple_simplify_276 (res_op, seq, valueize, type, captures)) return true; } } } if (gimple_vec_same_elem_p (_q30, valueize)) { 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 }; if (gimple_simplify_276 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_228 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNT)) return true; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_228 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTL)) return true; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_228 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTLL)) return true; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_228 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTIMAX)) return true; } } break; default:; } } break; default:; } } break; case CFN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_POPCOUNT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 7170 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_228 (res_op, seq, valueize, type, captures, CFN_POPCOUNT)) return true; } } break; default:; } } break; default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_PERM_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); if (gimple_vec_same_elem_p (_q41, valueize)) { 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 }; if (gimple_simplify_276 (res_op, seq, valueize, type, captures)) return true; } } } if (gimple_vec_same_elem_p (_q40, valueize)) { 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 }; if (gimple_simplify_276 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_POINTER_PLUS_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_zerop (_p1)) { { /* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1913; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1913:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #line 2186 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1914; 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__); { res_op->set_op (POINTER_PLUS_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1914; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1914:; } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1915; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1915:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q41)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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])) && (( 1 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || ( 0 && type == TREE_TYPE (captures[3]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1916; 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 tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1916:; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1917; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1917:; } } } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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])) && (( 1 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || ( 0 && type == TREE_TYPE (captures[3]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1918; 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 tem; tem = captures[3]; res_op->set_value (tem); return true; } next_after_fail1918:; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1919; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1919:; } } } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1920; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = algn; res_op->resimplify (lseq, valueize); return true; } next_after_fail1920:; } } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_MINUS_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_zerop (_p1)) { { /* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1921; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1921:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1922; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1922:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_12 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_12 (res_op, seq, valueize, type, captures, MINUS_EXPR, MINUS_EXPR)) return true; } 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 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))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1923; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1923:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case TRUNC_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q51)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case TRUNC_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case MULT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case TRUNC_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case TRUNC_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_243 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_429 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case TRUNC_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_429 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_410 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_410 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_410 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_410 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1924; 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__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1924; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1924:; } } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_416 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_416 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_416 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_416 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } { tree _q50_pops[1]; if (gimple_nop_convert (_q50, _q50_pops, valueize)) { tree _q60 = _q50_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q50 = _p1_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q50)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } { tree _q60_pops[1]; if (gimple_nop_convert (_q60, _q60_pops, valueize)) { tree _q70 = _q60_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q70)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1925; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1925:; } } } } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1926; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1926:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if (integer_all_onesp (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q70 = _p1_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q70)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { tree _q30 = _q20_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); if (integer_all_onesp (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q80 = _p1_pops[0]; switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q80)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a3); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a3); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } } } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_75 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_75 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1927; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1927:; } } } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1928; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1371, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1928:; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); if (integer_all_onesp (_q31)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q80 = _p1_pops[0]; switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q80)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a3); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a3); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { tree _q40 = _q30_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if (integer_all_onesp (_q31)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a3); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a3); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q90 = _p1_pops[0]; switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q90)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q100 = gimple_assign_rhs1 (_a3); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a3); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_339 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } } } break; } default:; } } break; default:; } } } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } { tree _q60_pops[1]; if (gimple_nop_convert (_q60, _q60_pops, valueize)) { tree _q70 = _q60_pops[0]; switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q70)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q60 = _p1_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q60)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a2); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a2); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q70)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } { tree _q70_pops[1]; if (gimple_nop_convert (_q70, _q70_pops, valueize)) { tree _q80 = _q70_pops[0]; switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q80)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q90 = gimple_assign_rhs1 (_a3); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a3); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_128 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } if (gimple_negate_expr_p (_p1, valueize)) { { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1929; 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__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1929; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1929:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_479 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_479 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_187 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_187 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1930; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1930:; } } } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1931; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1931:; } } } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_479 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_479 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_187 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_187 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1932; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1932:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1933; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1933:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1934; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1934:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1935; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1935:; } } } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1936; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1936:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1937; 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__); { res_op->set_op (MINUS_EXPR, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1937:; } } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1938; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2025, __FILE__, __LINE__); { res_op->set_op (POINTER_DIFF_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1938:; } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1939; 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__); { res_op->set_op (POINTER_DIFF_EXPR, type, 2); res_op->ops[0] = captures[3]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1939:; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 }; if (gimple_simplify_433 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; if (gimple_simplify_433 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } } } { tree _q21_pops[1]; if (gimple_nop_convert (_q21, _q21_pops, valueize)) { 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { 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 }; if (gimple_simplify_215 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_215 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } } } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_261 (res_op, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { 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 }; if (gimple_simplify_215 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_215 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } } } { tree _q31_pops[1]; if (gimple_nop_convert (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { 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 }; if (gimple_simplify_319 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_319 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { tree _q40_pops[1]; if (gimple_nop_convert (_q40, _q40_pops, valueize)) { 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } } } { tree _q41_pops[1]; if (gimple_nop_convert (_q41, _q41_pops, valueize)) { 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_440 (res_op, seq, valueize, type, captures)) return true; } } break; } case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { tree _q40_pops[1]; if (gimple_nop_convert (_q40, _q40_pops, valueize)) { 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 }; if (gimple_simplify_319 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_319 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_14 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_14 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR)) return true; } } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR)) return true; } } } 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 }; if (gimple_simplify_156 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_322 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); if (integer_each_onep (_p1)) { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q30 }; if (gimple_simplify_108 (res_op, seq, valueize, type, captures)) return true; } } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_314 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_314 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_314 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_314 (res_op, seq, valueize, type, captures)) return true; } } break; } case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1940; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1940:; } } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_380 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_380 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (integer_each_onep (_p1)) { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_108 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR)) return true; } } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_9 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR)) return true; } } } 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 }; if (gimple_simplify_156 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } } break; } default:; } } break; default:; } } } if (CONSTANT_CLASS_P (_p0)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (CONSTANT_CLASS_P (_q30)) { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 }; if (gimple_simplify_385 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (CONSTANT_CLASS_P (_q40)) { { /* #line 2516 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 }; if (gimple_simplify_385 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1941; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2790, __FILE__, __LINE__); { res_op->set_op (BIT_NOT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1941:; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_380 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_380 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1942; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1942; } else _r2 = _o2[0]; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1942; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1942:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1943; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1943; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1943:; } } } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case PLUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_211 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_211 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_211 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_211 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1944; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1944; } else _r2 = _o2[0]; _o1[0] = _r2; } { tree _o2[1], _r2; _o2[0] = captures[2]; if (utype != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1944; } else _r2 = _o2[0]; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1944; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1944:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1945; 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__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1945; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; _o1[0] = captures[2]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1945; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1945:; } } } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } 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 }; if (gimple_simplify_282 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_302 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } 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 }; if (gimple_simplify_302 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_331 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } 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 }; if (gimple_simplify_331 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0))) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case NEGATE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q80)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { CASE_CONVERT: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q90)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case LT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q70, _q90, _q100, _q101 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case LE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EQ_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } case NE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); if (tree_swap_operands_p (_q80, _q81)) std::swap (_q80, _q81); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } case GE_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case GT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); { /* #line 3290 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q41, _q31, _q70, _q80, _q81 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q60)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a5); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a5); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q31)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case MINUS_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_451 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1946; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1946; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1946; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1946:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1947; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1947; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1947; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1947:; } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1948; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1948:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1949; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); res_op->ops[0] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1949:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1950; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1950; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1950; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1950:; } 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 }; if (gimple_simplify_162 (res_op, seq, valueize, type, captures)) return true; } } } break; } case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a2); _q42 = do_valueize (valueize, _q42); 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 }; if (gimple_simplify_162 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_135 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case VEC_PERM_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if (gimple_vec_same_elem_p (_q31, valueize)) { 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 }; if (gimple_simplify_403 (res_op, seq, valueize, type, captures)) return true; } } } if (gimple_vec_same_elem_p (_q30, valueize)) { 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 }; if (gimple_simplify_403 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_BIT_IOR_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_zerop (_p1)) { { /* #line 182 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1951; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1951:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if (integer_zerop (_q51)) { { /* #line 991 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_287 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } if (integer_all_onesp (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if (integer_all_onesp (_q51)) { { /* #line 1000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_160 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_419 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_383 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_383 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_425 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_425 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_345 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_345 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_345 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_345 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_425 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_425 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_225 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_225 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_225 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_225 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_441 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_441 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_441 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_441 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_2 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_2 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } 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 }; if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } 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 }; if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_180 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } 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 }; if (gimple_simplify_180 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } break; } case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_205 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_205 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_180 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } 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 }; if (gimple_simplify_180 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_457 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_452 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1952; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1952:; } } if (integer_zerop (_p1)) { { /* #line 1183 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1953; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1953:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_AND_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_72 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 1217 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_25 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_279 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_279 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_279 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_279 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_151 (res_op, seq, valueize, type, captures)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_158 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_165 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_165 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_79 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_79 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_79 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_79 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_151 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } 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 }; if (gimple_simplify_64 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_64 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_69 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_158 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_69 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_170 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_283 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_294 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_236 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_28 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_254 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_163 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 }; if (gimple_simplify_377 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2341 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 }; if (gimple_simplify_163 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2356 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_377 (res_op, seq, valueize, type, captures)) return true; } } } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1954; 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__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[3]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1954; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1954:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } { /* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } { /* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } if (gimple_min_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_444 (res_op, seq, valueize, type, captures)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_444 (res_op, seq, valueize, type, captures)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_252 (res_op, seq, valueize, type, captures)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_252 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if (gimple_max_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_132 (res_op, seq, valueize, type, captures)) return true; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_132 (res_op, seq, valueize, type, captures)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_386 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_386 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2346 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_308 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_384 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2351 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_476 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_384 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2346 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; if (gimple_simplify_308 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_384 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2351 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_476 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2364 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_384 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } { /* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } { /* #line 2456 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_166 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_268 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } if (gimple_min_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_476 (res_op, seq, valueize, type, captures)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_476 (res_op, seq, valueize, type, captures)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1955; 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__); { res_op->set_op (LE_EXPR, type, 2); res_op->ops[0] = captures[3]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1955; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1955:; } } } break; } default:; } } break; default:; } } if (gimple_max_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_386 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_386 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_311 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; } case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_47 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_338 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_47 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { if (gimple_truth_valued_p (_p1, valueize)) { { /* #line 1780 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_60 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } } if (gimple_truth_valued_p (_p0, valueize)) { { tree _p1_pops[1]; if (gimple_logical_inverted_value (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_60 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_338 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_112 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_52 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_52 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1956; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1956; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1956; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1956:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1957; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1957; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1957; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1957:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1958; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1958; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail1958; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1958:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case UNORDERED_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case UNORDERED_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1959; 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__); { res_op->set_op (UNORDERED_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1959:; } } } 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 }; if (gimple_simplify_389 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_389 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case UNORDERED_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_336 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_336 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR)) return true; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1960; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1960; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1960; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1960:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1961; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1961; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1961; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1961; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1961:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1962; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1962; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1962; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1962:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1963; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1963; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1963; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1963; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1963:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR)) return true; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1964; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1964; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1964; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1964:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1965; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1965; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1965; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1965; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1965:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1966; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1966; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1966; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1966:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1967; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1967; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1967; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1967; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1967:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1968; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1968; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1968; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1968:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1969; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1969; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1969; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1969; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1969:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1970; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1970; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1970; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1970:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1971; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1971; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1971; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1971; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1971:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1972; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1972; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1972; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1972:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1973; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1973; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1973; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1973; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1973:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1974; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1974; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1974; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1974:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1975; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail1975; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1975; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1975; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail1975:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_189 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_POINTER_DIFF_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_zerop (_p1)) { { /* #line 192 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1976; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1976:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1977; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail1977:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1978; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1978:; } } } } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1979; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1979:; } } } } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1980; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1980:; } } } } break; } default:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1981; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1981:; } } } } break; } default:; } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1982; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1982:; } } } } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1983; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1983:; } } } } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1984; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1984:; } } } } break; } default:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1985; 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 tem; tem = build_int_cst_type (type, diff); res_op->set_value (tem); return true; } next_after_fail1985:; } } } } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1986; 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__); { res_op->set_op (PLUS_EXPR, type, 2); res_op->ops[0] = build_int_cst_type (type, diff); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1986; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1986; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1986:; } } } break; } default:; } 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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1987; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1987; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1987:; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1988; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1988; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1988; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1988:; } } } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1989; 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__); { res_op->set_op (POINTER_DIFF_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1989:; } } } } 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])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1990; 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__); { res_op->set_op (MINUS_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1990; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1990; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1990; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1990; } else _r1 = _o1[0]; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1990:; } } } } } break; } default:; } } break; default:; } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1991; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1991; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1991:; } } return false; } static bool gimple_simplify_MULT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1992; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1992:; } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1993; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail1993:; } } } 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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1994; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail1994:; } } } 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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1995; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1995:; } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1996; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail1996:; } } break; } default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_27 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case GE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_379 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case LT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_388 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case LE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_136 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; case GT_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_27 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case GE_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_379 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case LT_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_388 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case LE_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_136 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } default:; } break; } default:; } } break; 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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1997; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, itype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1997; _o1[0] = _r2; } { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = build_zero_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, itype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail1997; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, itype, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1997; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1997:; } } } } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_315 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_326 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case GE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_201 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_204 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case LT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_78 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_137 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case LE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_88 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_23 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; case GT_EXPR: { tree _q30 = TREE_OPERAND (_q20, 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); tree _q31 = TREE_OPERAND (_q20, 1); if ((TREE_CODE (_q31) == SSA_NAME || is_gimple_min_invariant (_q31))) { _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_315 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_326 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case GE_EXPR: { tree _q30 = TREE_OPERAND (_q20, 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); tree _q31 = TREE_OPERAND (_q20, 1); if ((TREE_CODE (_q31) == SSA_NAME || is_gimple_min_invariant (_q31))) { _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_201 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_204 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case LT_EXPR: { tree _q30 = TREE_OPERAND (_q20, 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); tree _q31 = TREE_OPERAND (_q20, 1); if ((TREE_CODE (_q31) == SSA_NAME || is_gimple_min_invariant (_q31))) { _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_78 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_137 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case LE_EXPR: { tree _q30 = TREE_OPERAND (_q20, 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); tree _q31 = TREE_OPERAND (_q20, 1); if ((TREE_CODE (_q31) == SSA_NAME || is_gimple_min_invariant (_q31))) { _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_88 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_23 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_467 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case GE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_263 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case LT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_83 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } case LE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_397 (res_op, seq, valueize, type, captures)) return true; } } } } } break; } default:; } } break; case GT_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_467 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case GE_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_263 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case LT_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_83 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } case LE_EXPR: { tree _q40 = TREE_OPERAND (_q30, 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); tree _q41 = TREE_OPERAND (_q30, 1); if ((TREE_CODE (_q41) == SSA_NAME || is_gimple_min_invariant (_q41))) { _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_397 (res_op, seq, valueize, type, captures)) return true; } } } } } } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF16: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF32: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF64: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF128: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF32X: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF64X: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } } } break; case CFN_BUILT_IN_COPYSIGNF128X: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } } } break; case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_199 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF16: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF32: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF64: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF128: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF32X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF64X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF128X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_454 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_381 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } break; } default:; } } break; default:; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF16: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF32: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF64: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF128: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF32X: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF64X: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_BUILT_IN_COPYSIGNF128X: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } break; } default:; } } break; default:; } } } break; case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); if (real_onep (_q30)) { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_318 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_216 (res_op, seq, valueize, type, captures, MULT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1998; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (type, mul); res_op->resimplify (lseq, valueize); return true; } next_after_fail1998:; } } } break; } default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail1999; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail1999; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail1999:; } } } } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2000; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2000:; } } break; } case ABSU_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2001; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2001; } else _r1 = _o1[0]; captures[2] = _r1; } res_op->ops[0] = captures[2]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2001:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } } break; case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF16: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF32: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF64: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF128: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF32X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF64X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } } break; case CFN_BUILT_IN_COPYSIGNF128X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } } break; case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_344 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { { /* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 }; if (gimple_simplify_34 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (integer_onep (_q30)) { { /* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _q31 }; if (gimple_simplify_34 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (integer_onep (_q30)) { { /* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 }; if (gimple_simplify_34 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_onep (_q20)) { { /* #line 903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 }; if (gimple_simplify_34 (res_op, seq, valueize, type, captures)) return true; } } break; } case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2002; 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__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = tem; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2002:; } } } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_zerop (_q61)) { if (integer_onep (_q31)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { if (integer_onep (_q31)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { tree _q40 = _q30_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (integer_zerop (_q71)) { if (integer_onep (_q31)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (integer_zerop (_q61)) { if (integer_onep (_q31)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q40_pops[1]; if (gimple_nop_convert (_q40, _q40_pops, valueize)) { tree _q50 = _q40_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q50)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q40)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q50)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q50_pops[1]; if (gimple_nop_convert (_q50, _q50_pops, valueize)) { tree _q60 = _q50_pops[0]; switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q60)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a2); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q70)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); switch (TREE_CODE (_q80)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q80)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a3); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a3); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } } } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q40_pops[1]; if (gimple_nop_convert (_q40, _q40_pops, valueize)) { tree _q50 = _q40_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q50)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { if (integer_onep (_q21)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (integer_zerop (_q41)) { if (integer_onep (_q21)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { tree _q30 = _q20_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); if (integer_zerop (_q61)) { if (integer_onep (_q21)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { if (integer_onep (_q21)) { { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_299 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a4); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q30_pops[1]; if (gimple_nop_convert (_q30, _q30_pops, valueize)) { tree _q40 = _q30_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _q40_pops[1]; if (gimple_nop_convert (_q40, _q40_pops, valueize)) { tree _q50 = _q40_pops[0]; switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q50)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q60)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_200 (res_op, seq, valueize, type, captures)) return true; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); if (gimple_negate_expr_p (_q50, valueize)) { { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (_p1, valueize)) { { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } } break; } case GT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 }; if (gimple_simplify_235 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } case LT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 }; if (gimple_simplify_235 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } case GE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 }; if (gimple_simplify_235 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } case LE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); { /* #line 1853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 }; if (gimple_simplify_235 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_4 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_4 (res_op, seq, valueize, type, captures)) return true; } } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } if (gimple_negate_expr_p (_q20, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); if (gimple_negate_expr_p (_q40, valueize)) { { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } if (gimple_negate_expr_p (_p1, valueize)) { { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_4 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_4 (res_op, seq, valueize, type, captures)) return true; } } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case EXACT_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case EXACT_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_466 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } if (gimple_negate_expr_p (_p0, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 1589 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 }; if (gimple_simplify_359 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } } if (integer_minus_onep (_p1)) { { /* #line 3900 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2003; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2003:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_280 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_280 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2004; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2004; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2004; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2004:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2005; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2005; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2005; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2005:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2006; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2006; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2006; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2006:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2007; 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__); { res_op->set_op (CFN_BUILT_IN_SQRTF, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2007; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2007:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2008; 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__); { res_op->set_op (CFN_BUILT_IN_SQRT, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2008; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2008:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2009; 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__); { res_op->set_op (CFN_BUILT_IN_SQRTL, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2009; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2009:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRTF16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF16)) return true; } } } break; case CFN_BUILT_IN_SQRTF32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF32)) return true; } } } break; case CFN_BUILT_IN_SQRTF64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF64)) return true; } } } break; case CFN_BUILT_IN_SQRTF128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF128)) return true; } } } break; case CFN_BUILT_IN_SQRTF32X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF32X)) return true; } } } break; case CFN_BUILT_IN_SQRTF64X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF64X)) return true; } } } break; case CFN_BUILT_IN_SQRTF128X: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF128X)) return true; } } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_422 (res_op, seq, valueize, type, captures, CFN_SQRT)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2010; 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__); { res_op->set_op (CFN_SQRT, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2010; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2010:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2011; 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__); { res_op->set_op (CFN_BUILT_IN_CBRTF, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2011; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2011:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2012; 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__); { res_op->set_op (CFN_BUILT_IN_CBRT, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2012; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2012:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2013; 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__); { res_op->set_op (CFN_BUILT_IN_CBRTL, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2013; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2013:; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2014; 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__); { res_op->set_op (CFN_BUILT_IN_EXPF, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2014; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2014:; } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2015; 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__); { res_op->set_op (CFN_BUILT_IN_EXPF, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2015; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2015; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2015; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2015:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2016; 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__); { res_op->set_op (CFN_BUILT_IN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2016; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2016:; } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2017; 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__); { res_op->set_op (CFN_BUILT_IN_EXP, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2017; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2017; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2017; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2017:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2018; 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__); { res_op->set_op (CFN_BUILT_IN_EXPL, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2018; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2018:; } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2019; 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__); { res_op->set_op (CFN_BUILT_IN_EXPL, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2019; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2019; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2019; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2019:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_EXP: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2020; 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__); { res_op->set_op (CFN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2020; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2020:; } } } break; case CFN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2021; 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__); { res_op->set_op (CFN_EXP, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2021; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2021; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2021; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2021:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2022; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2022; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2022:; } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2023; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2023; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2023; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2023; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2023:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2024; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2024; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2024:; } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2025; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2025; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2025; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2025; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2025:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2026; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2026; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2026:; } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2027; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2027; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2027; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2027; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2027:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_EXP2: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2028; 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__); { res_op->set_op (CFN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2028; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2028:; } } } break; case CFN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2029; 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__); { res_op->set_op (CFN_EXP2, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2029; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2029; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2029; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2029:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2030; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2030; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2030:; } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2031; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2031; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2031; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2031; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2031:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2032; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2032; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2032:; } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2033; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2033; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2033; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2033; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2033:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2034; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2034; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2034:; } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2035; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2035; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2035; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2035; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2035:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_EXP10: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2036; 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__); { res_op->set_op (CFN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2036; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2036:; } } } break; case CFN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2037; 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__); { res_op->set_op (CFN_EXP10, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2037; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2037; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2037; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2037:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2038; 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__); { res_op->set_op (CFN_BUILT_IN_POW10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2038; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2038:; } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2039; 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__); { res_op->set_op (CFN_BUILT_IN_POW10F, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2039; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2039; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2039; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2039:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2040; 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__); { res_op->set_op (CFN_BUILT_IN_POW10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2040; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2040:; } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2041; 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__); { res_op->set_op (CFN_BUILT_IN_POW10, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2041; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2041; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2041; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2041:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2042; 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__); { res_op->set_op (CFN_BUILT_IN_POW10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2042; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2042:; } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2043; 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__); { res_op->set_op (CFN_BUILT_IN_POW10L, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2043; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2043; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2043; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2043:; } } } break; } default:; } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2044; 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__); { res_op->set_op (CFN_BUILT_IN_EXPF, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2044; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2044; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2044; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2044:; } } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2045; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2045; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2045; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2045; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2045:; } } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2046; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2046; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2046; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2046; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2046:; } } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2047; 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__); { res_op->set_op (CFN_BUILT_IN_POW10F, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2047; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2047; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2047; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2047:; } } } } 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } break; } default:; } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2048; 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__); { res_op->set_op (CFN_BUILT_IN_EXP, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2048; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2048; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2048; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2048:; } } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2049; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2049; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2049; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2049; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2049:; } } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2050; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2050; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2050; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2050; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2050:; } } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2051; 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__); { res_op->set_op (CFN_BUILT_IN_POW10, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2051; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2051; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2051; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2051:; } } } } 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } break; } default:; } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2052; 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__); { res_op->set_op (CFN_BUILT_IN_EXPL, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2052; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2052; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2052; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2052:; } } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2053; 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__); { res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2053; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2053; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2053; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2053:; } } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2054; 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__); { res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2054; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2054; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2054; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2054:; } } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2055; 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__); { res_op->set_op (CFN_BUILT_IN_POW10L, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2055; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2055; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2055; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2055:; } } } } 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } break; } default:; } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case REAL_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_EXP: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2056; 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__); { res_op->set_op (CFN_EXP, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2056; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2056; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2056; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2056:; } } } } break; case CFN_EXP2: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2057; 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__); { res_op->set_op (CFN_EXP2, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2057; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2057; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2057; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2057:; } } } } break; case CFN_EXP10: if (gimple_call_num_args (_c2) == 1) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2058; 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__); { res_op->set_op (CFN_EXP10, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (_o3[0]), _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2058; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2058; _o1[0] = _r2; } _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2058; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2058:; } } } } 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } } break; } default:; } } break; case CFN_BUILT_IN_TANF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COS: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TANL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_TAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COS: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_COS, CFN_SIN)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_COSF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_TANF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_COS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_TAN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_COSL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_TANL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_COS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_TAN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_49 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_COS, CFN_SIN)) return true; } } } break; default:; } } break; default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } break; } default:; } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } break; } default:; } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } break; } default:; } } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_323 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } break; } default:; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_212 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } 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 }; if (gimple_simplify_203 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_212 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } 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 }; if (gimple_simplify_203 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_212 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } 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 }; if (gimple_simplify_203 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_POW: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_212 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } } 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 }; if (gimple_simplify_203 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POWIF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POWIF: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2059; 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__); { res_op->set_op (CFN_BUILT_IN_POWIF, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2059; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2059:; } } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POWI: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POWI: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2060; 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__); { res_op->set_op (CFN_BUILT_IN_POWI, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2060; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2060:; } } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POWIL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_POWIL: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); 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 () ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[3]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2061; 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__); { res_op->set_op (CFN_BUILT_IN_POWIL, type, 2); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2061; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2061:; } } } } break; default:; } } break; default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_EQ_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_168 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_168 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case CEIL_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, EQ_EXPR, CEIL_MOD_EXPR)) return true; } } } break; } case FLOOR_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, EQ_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } case ROUND_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, EQ_EXPR, ROUND_MOD_EXPR)) return true; } } } break; } case TRUNC_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, EQ_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (gimple_truth_valued_p (_q20, valueize)) { if (gimple_truth_valued_p (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2062; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2062; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2062:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2063; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2063; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2063:; } } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2064; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2064; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2064:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2065; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2065; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2065:; } } } break; } default:; } } break; default:; } } } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_truth_valued_p (_q50, valueize)) { if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21))) { if (gimple_truth_valued_p (_q51, valueize)) { { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2066; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2066; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2066:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2067; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2067; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2067:; } } } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_truth_valued_p (_q50, valueize)) { if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20))) { if (gimple_truth_valued_p (_q51, valueize)) { { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2068; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2068; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2068:; } { /* #line 1810 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2069; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2069; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2069:; } } } } } break; } default:; } } break; default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_18 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_19 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2070; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2070:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2071; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2071:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2072; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2072:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2073; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2073:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2074; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2074:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2075; 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__); { res_op->set_op (EQ_EXPR, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2075:; } } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_63 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_399 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { if (gimple_truth_valued_p (_p1, valueize)) { { /* #line 1785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_208 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } if (gimple_truth_valued_p (_p0, valueize)) { { tree _p1_pops[1]; if (gimple_logical_inverted_value (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_208 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q41)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q50)) { case INTEGER_CST: { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q51)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case INTEGER_CST: { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } switch (TREE_CODE (_q20)) { case INTEGER_CST: { switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_p1)) { { /* #line 2100 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_300 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case INTEGER_CST: { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_242 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_195 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_477 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_with_possible_nonzero_bits2 (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; { tree _p1_pops[1]; if (gimple_with_certain_nonzero_bits2 (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; { /* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_255 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } } { tree _p0_pops[1]; if (gimple_with_certain_nonzero_bits2 (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; { tree _p1_pops[1]; if (gimple_with_possible_nonzero_bits2 (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; { /* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_255 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR)) return true; } } break; } case MAX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_340 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } } 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 }; if (gimple_simplify_232 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } } break; } case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { tree _q30 = _q20_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_232 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_473 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case LROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LROTATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_290 (res_op, seq, valueize, type, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_363 (res_op, seq, valueize, type, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR)) return true; } 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 }; if (gimple_simplify_426 (res_op, seq, valueize, type, captures, LROTATE_EXPR, RROTATE_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } case RROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RROTATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_290 (res_op, seq, valueize, type, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_363 (res_op, seq, valueize, type, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR)) return true; } 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 }; if (gimple_simplify_426 (res_op, seq, valueize, type, captures, RROTATE_EXPR, LROTATE_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2076; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2076; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2076; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2076:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2077; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2077; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2077; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2077:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2078; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2078; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2078; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2078:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_p1)) { { /* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_376 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_p1)) { { /* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_87 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_61 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } 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 }; if (gimple_simplify_224 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_398 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_436 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_436 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_124 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_367 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_74 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, PLUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, MINUS_EXPR, EQ_EXPR)) return true; } 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 }; if (gimple_simplify_297 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; case REAL_CST: { { /* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_113 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_237 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (zerop (_p1)) { { /* #line 5319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_325 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_348 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_1 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_350 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_350 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_zerop (_p1)) { { /* #line 5423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_414 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, EQ_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, EQ_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR)) return true; } break; } default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_SQRT, EQ_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_SQRT, EQ_EXPR)) return true; } 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 }; if (gimple_simplify_251 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { { /* #line 5438 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 }; if (gimple_simplify_362 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); 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 5438 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 }; if (gimple_simplify_362 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_431 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } if (integer_zerop (_p1)) { { /* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_396 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_431 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_464 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_420 (res_op, seq, valueize, type, captures, EQ_EXPR, GE_EXPR)) return true; } } } break; } default:; } } 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 }; if (gimple_simplify_111 (res_op, seq, valueize, type, captures, EQ_EXPR, GE_EXPR)) return true; } } } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_125 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR, GE_EXPR)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 }; if (gimple_simplify_102 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_125 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR, GE_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_442 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } if (integer_zerop (_p1)) { { /* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_396 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } { /* #line 5622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_144 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_62 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2079; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2079:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2080; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2080:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2081; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2081; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2081:; } } } } } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2082; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2082:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2083; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2083; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2083:; } } } } } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2084; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2084:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2085; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2085; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2085:; } } } } } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2086; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2086:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2087; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2087; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2087:; } } } } } } } break; } default:; } break; } case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_98 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_400 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_400 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CLZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CLZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CLZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CLZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR, CFN_BUILT_IN_CLZIMAX)) return true; } break; } default:; } } break; case CFN_CLZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR, CFN_CLZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_CTZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_CTZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_CTZIMAX)) return true; } break; } default:; } } break; case CFN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX)) return true; } } } break; case CFN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_FFS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_FFS)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_FFSL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_FFSLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, EQ_EXPR, CFN_BUILT_IN_FFSIMAX)) return true; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_NE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_168 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_168 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case CEIL_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, NE_EXPR, CEIL_MOD_EXPR)) return true; } } } break; } case FLOOR_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, NE_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } case ROUND_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, NE_EXPR, ROUND_MOD_EXPR)) return true; } } } break; } case TRUNC_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_209 (res_op, seq, valueize, type, captures, NE_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_191 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_18 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_19 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2088; 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__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2088:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2089; 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__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2089:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2090; 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__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2090:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2091; 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__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2091:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2092; 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__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2092:; } } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2093; 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__); { res_op->set_op (NE_EXPR, type, 2); res_op->ops[0] = captures[2]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2093:; } } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_63 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_399 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { if (gimple_truth_valued_p (_p1, valueize)) { { /* #line 1785 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_208 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } } } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } } if (gimple_truth_valued_p (_p0, valueize)) { { tree _p1_pops[1]; if (gimple_logical_inverted_value (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_208 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_70 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q41)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q50)) { case INTEGER_CST: { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q51)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q31)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case INTEGER_CST: { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_nop_convert (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q30)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_293 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_337 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } switch (TREE_CODE (_q20)) { case INTEGER_CST: { switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_p1)) { { /* #line 2100 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_300 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q40)) { case INTEGER_CST: { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q41)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_408 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case POINTER_PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_242 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_195 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_477 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_with_possible_nonzero_bits2 (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; { tree _p1_pops[1]; if (gimple_with_certain_nonzero_bits2 (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; { /* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_255 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } } } { tree _p0_pops[1]; if (gimple_with_certain_nonzero_bits2 (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; { tree _p1_pops[1]; if (gimple_with_possible_nonzero_bits2 (_p1, _p1_pops, valueize)) { tree _q40 = _p1_pops[0]; { /* #line 2137 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 }; if (gimple_simplify_255 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR)) return true; } } break; } case MAX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_474 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_340 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } 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 }; if (gimple_simplify_232 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } break; } case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } { tree _q20_pops[1]; if (gimple_nop_convert (_q20, _q20_pops, valueize)) { tree _q30 = _q20_pops[0]; switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_232 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } } break; } default:; } } break; default:; } } } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_473 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case LROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LROTATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_290 (res_op, seq, valueize, type, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_363 (res_op, seq, valueize, type, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR)) return true; } 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 }; if (gimple_simplify_426 (res_op, seq, valueize, type, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR)) return true; } break; } default:; } break; } case RROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RROTATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_290 (res_op, seq, valueize, type, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_363 (res_op, seq, valueize, type, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR)) return true; } 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 }; if (gimple_simplify_426 (res_op, seq, valueize, type, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR)) return true; } break; } default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2094; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2094; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2094; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2094:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2095; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2095; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2095; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2095:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 3974 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_411 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } } break; default:; } } break; case INTEGER_CST: { { /* #line 3978 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_51 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2096; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2096; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2096; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2096:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_p1)) { { /* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_376 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_p1)) { { /* #line 4680 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_87 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_61 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } 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 }; if (gimple_simplify_224 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_244 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_436 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_436 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_124 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_367 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_74 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, PLUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, MINUS_EXPR, NE_EXPR)) return true; } 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 }; if (gimple_simplify_297 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; case REAL_CST: { { /* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_113 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } break; } default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_237 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); if (zerop (_p1)) { { /* #line 5319 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_325 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_348 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_1 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_350 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_350 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_zerop (_p1)) { { /* #line 5423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_414 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, NE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, NE_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, NE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, NE_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, NE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, NE_EXPR)) return true; } break; } default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_SQRT, NE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_SQRT, NE_EXPR)) return true; } 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 }; if (gimple_simplify_251 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_415 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { { /* #line 5435 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; if (gimple_simplify_417 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _p1)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { { /* #line 5438 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 }; if (gimple_simplify_362 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); 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 5438 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 }; if (gimple_simplify_362 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 5450 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 }; if (gimple_simplify_434 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_431 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } if (integer_zerop (_p1)) { { /* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_396 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_431 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_448 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_464 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_420 (res_op, seq, valueize, type, captures, NE_EXPR, LT_EXPR)) return true; } } } break; } default:; } } 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 }; if (gimple_simplify_111 (res_op, seq, valueize, type, captures, NE_EXPR, LT_EXPR)) return true; } } } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_125 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR, LT_EXPR)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 }; if (gimple_simplify_102 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5478 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_125 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR, LT_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (integer_zerop (_q51)) { { /* #line 5488 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_442 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } if (integer_zerop (_p1)) { { /* #line 5461 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_396 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } { /* #line 5622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_144 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_62 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } break; } default:; } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2097; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2097:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2098; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2098:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2099; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2099; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2099:; } } } } } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2100; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2100:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2101; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2101; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2101:; } } } } } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2102; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2102:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2103; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2103; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2103:; } } } } } } } 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2104; 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__); { res_op->set_op (icmp, type, 2); res_op->ops[0] = captures[1]; res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2104:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2105; 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__); { res_op->set_op (icmp, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2105; res_op->ops[0] = _r1; } res_op->ops[1] = csts; res_op->resimplify (lseq, valueize); return true; } next_after_fail2105:; } } } } } } } break; } default:; } break; } case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q31)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_98 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_400 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_400 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CLZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CLZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CLZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CLZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZIMAX)) return true; } break; } default:; } } break; case CFN_CLZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_159 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR, CFN_CLZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_CTZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_CTZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_CTZIMAX)) return true; } break; } default:; } } break; case CFN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_222 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX)) return true; } } } break; case CFN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_FFS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_FFS)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_FFSL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_FFSLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_11 (res_op, seq, valueize, type, captures, NE_EXPR, CFN_BUILT_IN_FFSIMAX)) return true; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2106; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2106:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2107; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2107:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGN; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2108; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2108:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGN; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2109; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2109:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2110; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2110:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2111; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2111:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF16; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2112; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2112:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF16; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2113; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2113:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF16: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2114; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2114:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2115; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2115:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF32: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2116; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2116:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2117; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2117:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF64: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2118; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2118:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2119; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2119:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF128: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32X; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2120; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2120:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32X; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2121; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2121:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF32X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64X; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2122; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2122:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64X; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2123; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2123:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF64X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_COPYSIGNF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128X; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2124; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2124:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128X; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2125; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2125:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF128X: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X)) return true; } } return false; } static bool gimple_simplify_CFN_COPYSIGN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_COPYSIGN; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2126; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2126:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 821 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn copysigns = CFN_COPYSIGN; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2127; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 821, __FILE__, __LINE__); { res_op->set_op (copysigns, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2127:; } break; } default:; } } break; case REAL_CST: { { /* #line 347 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } break; } default:; } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 871 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_32 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 879 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_245 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } break; default:; } } break; default:; } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6218 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_347 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0))) { { /* #line 6223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_24 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } break; } default:; } } break; default:; } if (tree_expr_nonnegative_p (_p1)) { { /* #line 6228 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_129 (res_op, seq, valueize, type, captures, CFN_COPYSIGN)) return true; } } return false; } static bool gimple_simplify_TRUNC_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_onep (_p1)) { { /* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_216 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (integer_onep (_q50)) { { /* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 }; if (gimple_simplify_291 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { { /* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 }; if (gimple_simplify_291 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (integer_onep (_q40)) { { /* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 }; if (gimple_simplify_148 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (integer_onep (_q30)) { { /* #line 370 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 }; if (gimple_simplify_148 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } if (integer_zerop (_p0)) { { /* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_405 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_3 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } 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 }; if (gimple_simplify_220 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_267 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_36 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2128; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (captures[1])), false, TYPE_PRECISION (type))); res_op->resimplify (lseq, valueize); return true; } next_after_fail2128:; } } } } 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR)) return true; } } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2129; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2129; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2129; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2129:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2130; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2130; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2130; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2130:; } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2131; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_one_cst (type); gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2131; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2131:; } else { { /* #line 463 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (type); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2132; 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__); { res_op->set_op (COND_EXPR, type, 3); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[1]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2132; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = build_one_cst (utype); gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2132; _o1[0] = _r2; } _o1[1] = build_int_cst (utype, 2); gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2132; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->ops[2] = build_zero_cst (type); res_op->resimplify (lseq, valueize); return true; } next_after_fail2132:; } } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2133; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2133; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2133; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2133:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CEIL_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_onep (_p1)) { { /* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_216 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_405 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_3 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } 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 }; if (gimple_simplify_220 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_267 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR)) return true; } } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2134; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2134; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2134; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2134:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2135; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2135; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2135; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2135:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2136; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2136; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2136; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2136:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FLOOR_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_onep (_p1)) { { /* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_216 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_405 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_3 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } 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 }; if (gimple_simplify_220 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_267 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } { /* #line 446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_401 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR, TRUNC_DIV_EXPR)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR)) return true; } } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2137; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2137; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2137; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2137:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2138; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2138; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2138; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2138:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2139; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2139; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2139; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2139:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_ROUND_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_onep (_p1)) { { /* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_216 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_405 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_3 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } 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 }; if (gimple_simplify_220 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_267 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR)) return true; } } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2140; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2140; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2140; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2140:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2141; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2141; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2141; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2141:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2142; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2142; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_DIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2142; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2142:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_EXACT_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (integer_onep (_p1)) { { /* #line 354 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_216 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 398 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_405 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_3 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } 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 }; if (gimple_simplify_220 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_267 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_100 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_270 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_36 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_114 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } 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 }; if (gimple_simplify_307 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR)) return true; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_FLOOR_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { { /* #line 446 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_401 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR, TRUNC_MOD_EXPR)) return true; } if (integer_zerop (_p0)) { { /* #line 620 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_142 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } if (integer_onep (_p1)) { { /* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_296 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } if (integer_minus_onep (_p1)) { { /* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_418 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } 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 }; if (gimple_simplify_289 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOOR_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_266 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_393 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { tree _q30_pops[1]; if (gimple_power_of_two_cand (_q30, _q30_pops, valueize)) { tree _q40 = _q30_pops[0]; { /* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 }; if (gimple_simplify_188 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_power_of_two_cand (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; { /* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 }; if (gimple_simplify_188 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR)) return true; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2143; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2143; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2143; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2143:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2144; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2144; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2144; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2144:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2145; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2145; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), FLOOR_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2145; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2145:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_RDIV_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2146; 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 tem; tem = build_one_cst (type); res_op->set_value (tem); return true; } next_after_fail2146:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_475 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_475 (res_op, seq, valueize, type, captures)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case ABS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_43 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_43 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_43 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_43 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2147; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2147:; } } } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2148; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 542, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2148:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2149; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 548, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2149; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2149:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2150; 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__); { res_op->set_op (RDIV_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = tem; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2150; res_op->ops[0] = _r1; } res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2150:; } } } } break; } default:; } break; } case RDIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2151; 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__); { res_op->set_op (MULT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2151; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2151:; } } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 566 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2152; 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__); { res_op->set_op (RDIV_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2152; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2152:; } break; } default:; } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2153; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail2153:; } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2154; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = inverse; res_op->resimplify (lseq, valueize); return true; } next_after_fail2154:; } } } } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2155; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail2155:; } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2156; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = inverse; res_op->resimplify (lseq, valueize); return true; } next_after_fail2156:; } } } } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2157; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = tem; res_op->resimplify (lseq, valueize); return true; } next_after_fail2157:; } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2158; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = inverse; res_op->resimplify (lseq, valueize); return true; } next_after_fail2158:; } } } } } } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2159; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2159; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2159; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2159:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2160; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2160; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2160; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2160:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2161; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2161; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2161; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2161:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2162; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2162; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SQRTF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2162; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2162:; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2163; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2163; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SQRT, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2163; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2163:; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2164; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2164; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SQRTL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2164; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2164:; } } break; } default:; } } break; default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2165; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2165; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_SQRT, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2165; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2165:; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2166; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2166; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CBRTF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2166; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2166:; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2167; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2167; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CBRT, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2167; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2167:; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2168; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[4]; _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2168; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CBRTL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2168; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2168:; } } break; } default:; } } break; default:; } } break; case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2169; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2169; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPF, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2169; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2169:; } } } break; case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2170; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2170; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2170; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2170:; } } } break; case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2171; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2171; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPL, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2171; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2171:; } } } break; case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2172; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2172; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_EXP, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2172; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2172:; } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2173; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2173; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP2F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2173; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2173:; } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2174; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2174; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2174; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2174:; } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2175; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2175; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP2L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2175; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2175:; } } } break; case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2176; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2176; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_EXP2, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2176; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2176:; } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2177; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2177; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP10F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2177; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2177:; } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2178; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2178; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2178; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2178:; } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2179; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2179; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP10L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2179; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2179:; } } } break; case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2180; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2180; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_EXP10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2180; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2180:; } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2181; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2181; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_POW10F, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2181; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2181:; } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2182; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2182; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_POW10, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2182; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2182:; } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); { /* #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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2183; 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__); { res_op->set_op (MULT_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2183; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_POW10L, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2183; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2183:; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SINF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_71 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF)) return true; } } } break; case CFN_BUILT_IN_TANF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_456 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SIN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COS: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_71 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN)) return true; } } } break; case CFN_BUILT_IN_TAN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_456 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SINL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_71 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL)) return true; } } } break; case CFN_BUILT_IN_TANL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_456 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_SIN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COS: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_71 (res_op, seq, valueize, type, captures, CFN_SIN, CFN_COS, CFN_TAN)) return true; } } } break; case CFN_TAN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_456 (res_op, seq, valueize, type, captures, CFN_SIN, CFN_TAN, CFN_COS)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SINHF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSHF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_465 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_TANHF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SINH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSH: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_465 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH, CFN_BUILT_IN_TANH)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_SINHL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_COSHL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_465 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_TANHL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_SINH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COSH: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_465 (res_op, seq, valueize, type, captures, CFN_SINH, CFN_COSH, CFN_TANH)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TANHF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINHF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_10 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANHF, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TANH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINH: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_10 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANH, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TANHL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINHL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_10 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANHL, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_TANH: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SINH: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_10 (res_op, seq, valueize, type, captures, CFN_TANH, CFN_SINH, CFN_COSH)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_COSF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_94 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_COS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SIN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_94 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_COSL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_94 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_COS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SIN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_94 (res_op, seq, valueize, type, captures, CFN_COS, CFN_SIN, CFN_TAN)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TANF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_133 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SIN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_133 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_TANL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SINL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_133 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL)) return true; } } } break; default:; } } break; default:; } } break; case CFN_TAN: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SIN: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_133 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_SIN, CFN_COS)) return true; } } } break; default:; } } break; default:; } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } break; } default:; } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } break; } default:; } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } break; } default:; } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 }; if (gimple_simplify_153 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 }; if (gimple_simplify_153 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 }; if (gimple_simplify_153 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 }; if (gimple_simplify_153 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_LT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_26 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case TRUNC_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_304 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_19 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_96 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_424 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_63 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_399 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2184; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2184; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2184; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2184:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2185; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2185; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2185; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2185:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2186; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2186; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2186; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2186:; } break; } default:; } } 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 }; if (gimple_simplify_22 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_224 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_244 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_124 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_367 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_74 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, PLUS_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, MINUS_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_297 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR)) return true; } break; } default:; } } break; case REAL_CST: { { /* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_113 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } break; } default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_239 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_468 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_348 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_1 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } 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 }; if (gimple_simplify_92 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LT_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LT_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LT_EXPR)) return true; } break; } default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_SQRT, LT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_SQRT, LT_EXPR)) return true; } break; } default:; } } break; default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } 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 }; if (gimple_simplify_182 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_175 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_312 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SUB_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_258 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_ADD_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_33 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_33 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_all_onesp (_q20)) { { /* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 }; if (gimple_simplify_328 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_480 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX)) return true; } break; } default:; } } break; case CFN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR, CFN_CTZ)) return true; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_LE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_26 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case TRUNC_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_471 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_309 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_19 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_96 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_424 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_63 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_399 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MAX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MAX_EXPR, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MAX_EXPR, LE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2187; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2187; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2187; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2187:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2188; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2188; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2188; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2188:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2189; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2189; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2189; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2189:; } break; } default:; } } 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 }; if (gimple_simplify_196 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_224 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_398 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_124 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_367 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_74 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, PLUS_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, MINUS_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_297 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } break; } default:; } } break; case REAL_CST: { { /* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_113 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } break; } default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_239 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_468 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_348 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_1 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } 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 }; if (gimple_simplify_92 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_21 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } break; } default:; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LE_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LE_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LE_EXPR)) return true; } break; } default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_SQRT, LE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_SQRT, LE_EXPR)) return true; } break; } default:; } } break; default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } 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 }; if (gimple_simplify_182 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_175 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_460 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SUB_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_265 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_ADD_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_264 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_264 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (integer_all_onesp (_q30)) { { /* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 }; if (gimple_simplify_395 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_480 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX)) return true; } break; } default:; } } break; case CFN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR, CFN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX)) return true; } } } break; case CFN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_FFS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFS)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSIMAX)) return true; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_GT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_26 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case TRUNC_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_471 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_309 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_19 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_96 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_424 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_63 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_399 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MAX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR)) return true; } } 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2190; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2190; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2190; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2190:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2191; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2191; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2191; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2191:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2192; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2192; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2192; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2192:; } break; } default:; } } 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 }; if (gimple_simplify_196 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_224 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } 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 }; if (gimple_simplify_244 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_124 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_367 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_74 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, PLUS_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, MINUS_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_297 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR)) return true; } break; } default:; } } break; case REAL_CST: { { /* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_113 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } break; } default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_239 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_468 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_348 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_1 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } 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 }; if (gimple_simplify_92 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_21 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GT_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GT_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GT_EXPR)) return true; } break; } default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_SQRT, GT_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_SQRT, GT_EXPR)) return true; } break; } default:; } } break; default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } 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 }; if (gimple_simplify_182 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_175 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_460 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SUB_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_265 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_ADD_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_264 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } 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 }; if (gimple_simplify_264 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (integer_all_onesp (_q30)) { { /* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 }; if (gimple_simplify_395 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_480 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX)) return true; } break; } default:; } } break; case CFN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR, CFN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX)) return true; } } } break; case CFN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_zerop (_p1)) { { /* #line 7179 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_364 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_POPCOUNT)) return true; } } } break; case CFN_BUILT_IN_FFS: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFS)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_FFSIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_478 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, EQ_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_FFSIMAX)) return true; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_GE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RDIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_26 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case TRUNC_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_304 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_409 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case EXACT_DIV_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_198 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_19 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_91 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_96 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_424 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case POINTER_DIFF_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_DIFF_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_63 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_399 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_275 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_157 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_149 (res_op, seq, valueize, type, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MIN_EXPR, GE_EXPR)) return true; } } 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 }; if (gimple_simplify_167 (res_op, seq, valueize, type, captures, MIN_EXPR, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2193; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2193; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2193; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2193:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2194; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2194; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2194; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2194:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2195; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2195; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2195; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2195:; } break; } default:; } } 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 }; if (gimple_simplify_22 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_224 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } 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 }; if (gimple_simplify_398 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4793 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_124 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_367 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 4809 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_127 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_74 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, PLUS_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_284 (res_op, seq, valueize, type, captures, MINUS_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_297 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } break; } default:; } } break; case REAL_CST: { { /* #line 5111 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_113 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } break; } default:; } break; } case EXACT_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_239 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EXACT_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_468 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_348 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 5326 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_1 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_140 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } 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 }; if (gimple_simplify_92 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GE_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GE_EXPR)) return true; } break; } default:; } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GE_EXPR)) return true; } break; } default:; } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SQRT: if (gimple_call_num_args (_c2) == 1) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CFN_SQRT, GE_EXPR)) return true; } } break; default:; } } break; case REAL_CST: { { /* #line 4934 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; if (gimple_simplify_58 (res_op, seq, valueize, type, captures, CFN_SQRT, GE_EXPR)) return true; } break; } default:; } } break; default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_17 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } 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 }; if (gimple_simplify_182 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_86 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_372 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } break; } default:; } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_175 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_312 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_SUB_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); 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 }; if (gimple_simplify_258 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_ADD_OVERFLOW: if (gimple_call_num_args (_c2) == 2) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c2, 1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_33 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } 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 }; if (gimple_simplify_33 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } } break; default:; } } break; default:; } } break; } case TRUNC_DIV_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (integer_all_onesp (_q20)) { { /* #line 5867 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 }; if (gimple_simplify_328 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_480 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_404 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_CTZIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX)) return true; } break; } default:; } } break; case CFN_CTZ: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_253 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR, CFN_CTZ)) return true; } break; } default:; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_CEIL_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } if (integer_onep (_p1)) { { /* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } if (integer_minus_onep (_p1)) { { /* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_418 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } 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 }; if (gimple_simplify_289 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CEIL_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_266 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_393 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR)) return true; } break; } default:; } break; } default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2196; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2196; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2196; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2196:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2197; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2197; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2197; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2197:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2198; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2198; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), CEIL_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2198; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2198:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_ROUND_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_142 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } if (integer_onep (_p1)) { { /* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_296 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } if (integer_minus_onep (_p1)) { { /* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_418 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } 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 }; if (gimple_simplify_289 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ROUND_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_266 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_393 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR)) return true; } break; } default:; } break; } default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2199; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2199; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2199; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2199:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2200; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2200; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2200; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2200:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2201; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2201; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ROUND_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2201; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2201:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_TRUNC_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_142 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } if (integer_onep (_p1)) { { /* #line 625 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_296 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } if (integer_minus_onep (_p1)) { { /* #line 629 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_418 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } 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 }; if (gimple_simplify_289 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case TRUNC_MOD_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_266 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } break; } case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_393 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 672 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 }; if (gimple_simplify_271 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } { tree _q30_pops[1]; if (gimple_power_of_two_cand (_q30, _q30_pops, valueize)) { tree _q40 = _q30_pops[0]; { /* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 }; if (gimple_simplify_188 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 672 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; if (gimple_simplify_271 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2202; 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__); { res_op->set_op (TRUNC_MOD_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; _o1[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2202; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2202:; } } break; } default:; } { tree _p1_pops[1]; if (gimple_power_of_two_cand (_p1, _p1_pops, valueize)) { tree _q30 = _p1_pops[0]; { /* #line 717 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 }; if (gimple_simplify_188 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR)) return true; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2203; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2203; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2203; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2203:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2204; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2204; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2204; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2204:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2205; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2205; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2205; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2205:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_LSHIFT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case TRUNC_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_power_of_two_cand (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_38 (res_op, seq, valueize, type, captures, LSHIFT_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } case FLOOR_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_power_of_two_cand (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_38 (res_op, seq, valueize, type, captures, LSHIFT_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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)); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2206; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[0]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2206; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = wide_int_to_tree (type, wi::lshift (wone, wi::to_wide (captures[2]))); res_op->resimplify (lseq, valueize); return true; } next_after_fail2206:; } } } break; } default:; } } break; } CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case RSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); 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])))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2207; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); { tree _o1[1], _r1; _o1[0] = captures[1]; if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2207; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = build_minus_one_cst (type); _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2207; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2207:; } } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_459 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_nop_convert (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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 }; if (gimple_simplify_459 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } break; } default:; } } break; default:; } } } if (integer_onep (_p0)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2208; 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__); { res_op->set_op (RSHIFT_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2208; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2208:; } else { { /* #line 916 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree utype = unsigned_type_for (type); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2209; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; if (utype != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (utype, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2209; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2209; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2209; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2209:; } } } } break; } default:; } 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 }; if (gimple_simplify_214 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_181 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONSTRUCTOR: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_361 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } } { { /* #line 3393 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_183 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } } break; case VECTOR_CST: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_382 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_334 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_470 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_470 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_470 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_59 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_59 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_59 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2210; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2210; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2210; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2210:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2211; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2211; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2211; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2211:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2212; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2212; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2212; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2212:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_RSHIFT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case TRUNC_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_power_of_two_cand (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_38 (res_op, seq, valueize, type, captures, RSHIFT_EXPR, TRUNC_MOD_EXPR)) return true; } } } break; } case FLOOR_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { tree _q31_pops[1]; if (gimple_power_of_two_cand (_q31, _q31_pops, valueize)) { 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 }; if (gimple_simplify_38 (res_op, seq, valueize, type, captures, RSHIFT_EXPR, FLOOR_MOD_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2213; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = zeros; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, boolean_type_node, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2213; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2213; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2213:; } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2214; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = zeros; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, bt, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2214; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2214:; } } } } } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2215; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = captures[1]; _o2[1] = zeros; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, boolean_type_node, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2215; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2215; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2215:; } 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2216; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = zeros; gimple_match_op tem_op (res_op->cond.any_else (), GT_EXPR, bt, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2216; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2216:; } } } } } break; } default:; } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2217; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = build_minus_one_cst (type); _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2217; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2217:; } } } break; } default:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2218; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2218:; } } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2219; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail2219:; } } if (integer_zerop (_p1)) { { /* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_214 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_181 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONSTRUCTOR: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_361 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } } { { /* #line 3393 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_183 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } } break; case VECTOR_CST: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_382 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_334 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_470 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_470 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_470 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } } break; default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_59 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_59 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_59 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2220; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2220; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2220; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2220:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2221; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2221; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2221; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2221:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2222; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2222; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2222; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2222:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MULT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a3); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case RSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); switch (TREE_CODE (_q51)) { case INTEGER_CST: { if ((_q41 == _q50 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q50, 0) && types_match (_q41, _q50))) { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q41)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a5); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a5); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q90)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_AND_EXPR: { tree _q100 = gimple_assign_rhs1 (_a6); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a6); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); switch (TREE_CODE (_q101)) { case INTEGER_CST: { switch (TREE_CODE (_q91)) { case SSA_NAME: if (gimple *_d7 = get_def (valueize, _q91)) { if (gassign *_a7 = dyn_cast (_d7)) switch (gimple_assign_rhs_code (_a7)) { case BIT_AND_EXPR: { tree _q130 = gimple_assign_rhs1 (_a7); _q130 = do_valueize (valueize, _q130); tree _q131 = gimple_assign_rhs2 (_a7); _q131 = do_valueize (valueize, _q131); if (tree_swap_operands_p (_q130, _q131)) std::swap (_q130, _q131); switch (TREE_CODE (_q130)) { case SSA_NAME: if (gimple *_d8 = get_def (valueize, _q130)) { if (gassign *_a8 = dyn_cast (_d8)) switch (gimple_assign_rhs_code (_a8)) { case RSHIFT_EXPR: { tree _q140 = gimple_assign_rhs1 (_a8); _q140 = do_valueize (valueize, _q140); tree _q141 = gimple_assign_rhs2 (_a8); _q141 = do_valueize (valueize, _q141); if ((_q140 == _q100 && ! TREE_SIDE_EFFECTS (_q140)) || (operand_equal_p (_q140, _q100, 0) && types_match (_q140, _q100))) { switch (TREE_CODE (_q140)) { case SSA_NAME: if (gimple *_d9 = get_def (valueize, _q140)) { if (gassign *_a9 = dyn_cast (_d9)) switch (gimple_assign_rhs_code (_a9)) { case MINUS_EXPR: { tree _q160 = gimple_assign_rhs1 (_a9); _q160 = do_valueize (valueize, _q160); tree _q161 = gimple_assign_rhs2 (_a9); _q161 = do_valueize (valueize, _q161); switch (TREE_CODE (_q161)) { case SSA_NAME: if (gimple *_d10 = get_def (valueize, _q161)) { if (gassign *_a10 = dyn_cast (_d10)) switch (gimple_assign_rhs_code (_a10)) { case BIT_AND_EXPR: { tree _q180 = gimple_assign_rhs1 (_a10); _q180 = do_valueize (valueize, _q180); tree _q181 = gimple_assign_rhs2 (_a10); _q181 = do_valueize (valueize, _q181); if (tree_swap_operands_p (_q180, _q181)) std::swap (_q180, _q181); switch (TREE_CODE (_q180)) { case SSA_NAME: if (gimple *_d11 = get_def (valueize, _q180)) { if (gassign *_a11 = dyn_cast (_d11)) switch (gimple_assign_rhs_code (_a11)) { case RSHIFT_EXPR: { tree _q190 = gimple_assign_rhs1 (_a11); _q190 = do_valueize (valueize, _q190); tree _q191 = gimple_assign_rhs2 (_a11); _q191 = do_valueize (valueize, _q191); if ((_q190 == _q160 && ! TREE_SIDE_EFFECTS (_q190)) || (operand_equal_p (_q190, _q160, 0) && types_match (_q190, _q160))) { switch (TREE_CODE (_q191)) { case INTEGER_CST: { switch (TREE_CODE (_q181)) { case INTEGER_CST: { switch (TREE_CODE (_q141)) { case INTEGER_CST: { switch (TREE_CODE (_q131)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 7248 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[12] ATTRIBUTE_UNUSED = { _q50, _q51, _q100, _q101, _q160, _q191, _q181, _q141, _q131, _q31, _q21, _p1 }; if (gimple_simplify_184 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q100)) { case SSA_NAME: if (gimple *_d7 = get_def (valueize, _q100)) { if (gassign *_a7 = dyn_cast (_d7)) switch (gimple_assign_rhs_code (_a7)) { case RSHIFT_EXPR: { tree _q110 = gimple_assign_rhs1 (_a7); _q110 = do_valueize (valueize, _q110); tree _q111 = gimple_assign_rhs2 (_a7); _q111 = do_valueize (valueize, _q111); switch (TREE_CODE (_q110)) { case SSA_NAME: if (gimple *_d8 = get_def (valueize, _q110)) { if (gassign *_a8 = dyn_cast (_d8)) switch (gimple_assign_rhs_code (_a8)) { case MINUS_EXPR: { tree _q120 = gimple_assign_rhs1 (_a8); _q120 = do_valueize (valueize, _q120); tree _q121 = gimple_assign_rhs2 (_a8); _q121 = do_valueize (valueize, _q121); switch (TREE_CODE (_q121)) { case SSA_NAME: if (gimple *_d9 = get_def (valueize, _q121)) { if (gassign *_a9 = dyn_cast (_d9)) switch (gimple_assign_rhs_code (_a9)) { case BIT_AND_EXPR: { tree _q140 = gimple_assign_rhs1 (_a9); _q140 = do_valueize (valueize, _q140); tree _q141 = gimple_assign_rhs2 (_a9); _q141 = do_valueize (valueize, _q141); if (tree_swap_operands_p (_q140, _q141)) std::swap (_q140, _q141); switch (TREE_CODE (_q140)) { case SSA_NAME: if (gimple *_d10 = get_def (valueize, _q140)) { if (gassign *_a10 = dyn_cast (_d10)) switch (gimple_assign_rhs_code (_a10)) { case RSHIFT_EXPR: { tree _q150 = gimple_assign_rhs1 (_a10); _q150 = do_valueize (valueize, _q150); tree _q151 = gimple_assign_rhs2 (_a10); _q151 = do_valueize (valueize, _q151); if ((_q150 == _q120 && ! TREE_SIDE_EFFECTS (_q150)) || (operand_equal_p (_q150, _q120, 0) && types_match (_q150, _q120))) { switch (TREE_CODE (_q151)) { case INTEGER_CST: { switch (TREE_CODE (_q141)) { case INTEGER_CST: { switch (TREE_CODE (_q111)) { case INTEGER_CST: { switch (TREE_CODE (_q101)) { case INTEGER_CST: { switch (TREE_CODE (_q91)) { case SSA_NAME: if (gimple *_d11 = get_def (valueize, _q91)) { if (gassign *_a11 = dyn_cast (_d11)) switch (gimple_assign_rhs_code (_a11)) { case BIT_AND_EXPR: { tree _q210 = gimple_assign_rhs1 (_a11); _q210 = do_valueize (valueize, _q210); tree _q211 = gimple_assign_rhs2 (_a11); _q211 = do_valueize (valueize, _q211); if (tree_swap_operands_p (_q210, _q211)) std::swap (_q210, _q211); if ((_q210 == _q110 && ! TREE_SIDE_EFFECTS (_q210)) || (operand_equal_p (_q210, _q110, 0) && types_match (_q210, _q110))) { switch (TREE_CODE (_q211)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 7248 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[12] ATTRIBUTE_UNUSED = { _q50, _q51, _q110, _q211, _q120, _q151, _q141, _q111, _q101, _q31, _q21, _p1 }; if (gimple_simplify_184 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } default:; } break; } case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a4); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a4); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d5 = get_def (valueize, _q50)) { if (gassign *_a5 = dyn_cast (_d5)) switch (gimple_assign_rhs_code (_a5)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a5); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a5); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); switch (TREE_CODE (_q61)) { case INTEGER_CST: { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q51)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case BIT_AND_EXPR: { tree _q90 = gimple_assign_rhs1 (_a6); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a6); _q91 = do_valueize (valueize, _q91); if (tree_swap_operands_p (_q90, _q91)) std::swap (_q90, _q91); switch (TREE_CODE (_q90)) { case SSA_NAME: if (gimple *_d7 = get_def (valueize, _q90)) { if (gassign *_a7 = dyn_cast (_d7)) switch (gimple_assign_rhs_code (_a7)) { case RSHIFT_EXPR: { tree _q100 = gimple_assign_rhs1 (_a7); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a7); _q101 = do_valueize (valueize, _q101); if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60))) { switch (TREE_CODE (_q100)) { case SSA_NAME: if (gimple *_d8 = get_def (valueize, _q100)) { if (gassign *_a8 = dyn_cast (_d8)) switch (gimple_assign_rhs_code (_a8)) { case MINUS_EXPR: { tree _q120 = gimple_assign_rhs1 (_a8); _q120 = do_valueize (valueize, _q120); tree _q121 = gimple_assign_rhs2 (_a8); _q121 = do_valueize (valueize, _q121); switch (TREE_CODE (_q121)) { case SSA_NAME: if (gimple *_d9 = get_def (valueize, _q121)) { if (gassign *_a9 = dyn_cast (_d9)) switch (gimple_assign_rhs_code (_a9)) { case BIT_AND_EXPR: { tree _q140 = gimple_assign_rhs1 (_a9); _q140 = do_valueize (valueize, _q140); tree _q141 = gimple_assign_rhs2 (_a9); _q141 = do_valueize (valueize, _q141); if (tree_swap_operands_p (_q140, _q141)) std::swap (_q140, _q141); switch (TREE_CODE (_q140)) { case SSA_NAME: if (gimple *_d10 = get_def (valueize, _q140)) { if (gassign *_a10 = dyn_cast (_d10)) switch (gimple_assign_rhs_code (_a10)) { case RSHIFT_EXPR: { tree _q150 = gimple_assign_rhs1 (_a10); _q150 = do_valueize (valueize, _q150); tree _q151 = gimple_assign_rhs2 (_a10); _q151 = do_valueize (valueize, _q151); if ((_q150 == _q120 && ! TREE_SIDE_EFFECTS (_q150)) || (operand_equal_p (_q150, _q120, 0) && types_match (_q150, _q120))) { switch (TREE_CODE (_q151)) { case INTEGER_CST: { switch (TREE_CODE (_q141)) { case INTEGER_CST: { switch (TREE_CODE (_q101)) { case INTEGER_CST: { switch (TREE_CODE (_q91)) { case INTEGER_CST: { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d11 = get_def (valueize, _q41)) { if (gassign *_a11 = dyn_cast (_d11)) switch (gimple_assign_rhs_code (_a11)) { case RSHIFT_EXPR: { tree _q210 = gimple_assign_rhs1 (_a11); _q210 = do_valueize (valueize, _q210); tree _q211 = gimple_assign_rhs2 (_a11); _q211 = do_valueize (valueize, _q211); if ((_q210 == _q40 && ! TREE_SIDE_EFFECTS (_q210)) || (operand_equal_p (_q210, _q40, 0) && types_match (_q210, _q40))) { switch (TREE_CODE (_q211)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 7248 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[12] ATTRIBUTE_UNUSED = { _q40, _q211, _q60, _q61, _q120, _q151, _q141, _q101, _q91, _q31, _q21, _p1 }; if (gimple_simplify_184 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d6 = get_def (valueize, _q60)) { if (gassign *_a6 = dyn_cast (_d6)) switch (gimple_assign_rhs_code (_a6)) { case RSHIFT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a6); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a6); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d7 = get_def (valueize, _q70)) { if (gassign *_a7 = dyn_cast (_d7)) switch (gimple_assign_rhs_code (_a7)) { case MINUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a7); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a7); _q81 = do_valueize (valueize, _q81); switch (TREE_CODE (_q81)) { case SSA_NAME: if (gimple *_d8 = get_def (valueize, _q81)) { if (gassign *_a8 = dyn_cast (_d8)) switch (gimple_assign_rhs_code (_a8)) { case BIT_AND_EXPR: { tree _q100 = gimple_assign_rhs1 (_a8); _q100 = do_valueize (valueize, _q100); tree _q101 = gimple_assign_rhs2 (_a8); _q101 = do_valueize (valueize, _q101); if (tree_swap_operands_p (_q100, _q101)) std::swap (_q100, _q101); switch (TREE_CODE (_q100)) { case SSA_NAME: if (gimple *_d9 = get_def (valueize, _q100)) { if (gassign *_a9 = dyn_cast (_d9)) switch (gimple_assign_rhs_code (_a9)) { case RSHIFT_EXPR: { tree _q110 = gimple_assign_rhs1 (_a9); _q110 = do_valueize (valueize, _q110); tree _q111 = gimple_assign_rhs2 (_a9); _q111 = do_valueize (valueize, _q111); if ((_q110 == _q80 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q80, 0) && types_match (_q110, _q80))) { switch (TREE_CODE (_q111)) { case INTEGER_CST: { switch (TREE_CODE (_q101)) { case INTEGER_CST: { switch (TREE_CODE (_q71)) { case INTEGER_CST: { switch (TREE_CODE (_q61)) { case INTEGER_CST: { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d10 = get_def (valueize, _q51)) { if (gassign *_a10 = dyn_cast (_d10)) switch (gimple_assign_rhs_code (_a10)) { case BIT_AND_EXPR: { tree _q170 = gimple_assign_rhs1 (_a10); _q170 = do_valueize (valueize, _q170); tree _q171 = gimple_assign_rhs2 (_a10); _q171 = do_valueize (valueize, _q171); if (tree_swap_operands_p (_q170, _q171)) std::swap (_q170, _q171); if ((_q170 == _q70 && ! TREE_SIDE_EFFECTS (_q170)) || (operand_equal_p (_q170, _q70, 0) && types_match (_q170, _q70))) { switch (TREE_CODE (_q171)) { case INTEGER_CST: { switch (TREE_CODE (_q41)) { case SSA_NAME: if (gimple *_d11 = get_def (valueize, _q41)) { if (gassign *_a11 = dyn_cast (_d11)) switch (gimple_assign_rhs_code (_a11)) { case RSHIFT_EXPR: { tree _q200 = gimple_assign_rhs1 (_a11); _q200 = do_valueize (valueize, _q200); tree _q201 = gimple_assign_rhs2 (_a11); _q201 = do_valueize (valueize, _q201); if ((_q200 == _q40 && ! TREE_SIDE_EFFECTS (_q200)) || (operand_equal_p (_q200, _q40, 0) && types_match (_q200, _q40))) { switch (TREE_CODE (_q201)) { case INTEGER_CST: { switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 7248 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[12] ATTRIBUTE_UNUSED = { _q40, _q201, _q70, _q171, _q80, _q111, _q101, _q71, _q61, _q31, _q21, _p1 }; if (gimple_simplify_184 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_BUILT_IN_POWF; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2223; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2223:; } } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_BUILT_IN_POWF; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2224; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2224:; } } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 845 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_206 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF, CFN_BUILT_IN_COPYSIGNF)) return true; } break; } default:; } } break; case CFN_BUILT_IN_EXPF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2225; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXPF, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2225; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2225:; } } } break; case CFN_BUILT_IN_EXP2F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2226; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2226; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2226:; } } } break; case CFN_BUILT_IN_EXP10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2227; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2227; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2227:; } } } break; case CFN_BUILT_IN_POW10F: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2228; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10F, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2228; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2228:; } } } break; case CFN_BUILT_IN_SQRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2229; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6355, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2229; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2229:; } } } break; case CFN_BUILT_IN_CBRTF: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2230; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6359, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2230; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2230:; } } } } break; case CFN_BUILT_IN_POWF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2231; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6363, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWF, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2231; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2231:; } } } } break; default:; } } break; case REAL_CST: { { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_210 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF, CFN_BUILT_IN_EXPF, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXP2F, CFN_BUILT_IN_LOG2F)) return true; } break; } default:; } if (real_onep (_p0)) { { /* #line 6213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 6593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; { /* #line 6593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]); REAL_VALUE_TYPE tmp; /* #line 6599 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconst0) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2232; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6600, __FILE__, __LINE__); { tree tem; tem = build_real (type, dconst1); res_op->set_value (tem); return true; } next_after_fail2232:; } else { /* #line 6602 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconst1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2233; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6603, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2233:; } else { /* #line 6605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconstm1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2234; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6606, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_real (type, dconst1); res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2234:; } else { /* #line 6608 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2235; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6611, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_SQRTF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2235:; } else { /* #line 6613 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2236; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6617, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CBRTF, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2236:; } } } } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POW (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_BUILT_IN_POW; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2237; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2237:; } } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_BUILT_IN_POW; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2238; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2238:; } } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 845 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_206 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW, CFN_BUILT_IN_COPYSIGN)) return true; } break; } default:; } } break; case CFN_BUILT_IN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2239; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2239; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2239:; } } } break; case CFN_BUILT_IN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2240; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2240; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2240:; } } } break; case CFN_BUILT_IN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2241; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2241; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2241:; } } } break; case CFN_BUILT_IN_POW10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2242; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2242; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2242:; } } } break; case CFN_BUILT_IN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2243; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6355, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2243; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2243:; } } } break; case CFN_BUILT_IN_CBRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2244; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6359, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2244; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2244:; } } } } break; case CFN_BUILT_IN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2245; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6363, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2245; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2245:; } } } } break; default:; } } break; case REAL_CST: { { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_210 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW, CFN_BUILT_IN_EXP, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP2, CFN_BUILT_IN_LOG2)) return true; } break; } default:; } if (real_onep (_p0)) { { /* #line 6213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 6593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; { /* #line 6593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]); REAL_VALUE_TYPE tmp; /* #line 6599 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconst0) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2246; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6600, __FILE__, __LINE__); { tree tem; tem = build_real (type, dconst1); res_op->set_value (tem); return true; } next_after_fail2246:; } else { /* #line 6602 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconst1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2247; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6603, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2247:; } else { /* #line 6605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconstm1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2248; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6606, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_real (type, dconst1); res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2248:; } else { /* #line 6608 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2249; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6611, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_SQRT, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2249:; } else { /* #line 6613 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2250; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6617, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CBRT, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2250:; } } } } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_BUILT_IN_POWL; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2251; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2251:; } } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_BUILT_IN_POWL; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2252; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2252:; } } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 845 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_206 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL, CFN_BUILT_IN_COPYSIGNL)) return true; } break; } default:; } } break; case CFN_BUILT_IN_EXPL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2253; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXPL, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2253; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2253:; } } } break; case CFN_BUILT_IN_EXP2L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2254; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2254; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2254:; } } } break; case CFN_BUILT_IN_EXP10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2255; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2255; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2255:; } } } break; case CFN_BUILT_IN_POW10L: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2256; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POW10L, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2256; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2256:; } } } break; case CFN_BUILT_IN_SQRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2257; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6355, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2257; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2257:; } } } break; case CFN_BUILT_IN_CBRTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2258; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6359, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real_truncate (type, dconst_third ()); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2258; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2258:; } } } } break; case CFN_BUILT_IN_POWL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2259; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6363, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWL, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2259; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2259:; } } } } break; default:; } } break; case REAL_CST: { { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_210 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL, CFN_BUILT_IN_EXPL, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXP2L, CFN_BUILT_IN_LOG2L)) return true; } break; } default:; } if (real_onep (_p0)) { { /* #line 6213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 6593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; { /* #line 6593 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]); REAL_VALUE_TYPE tmp; /* #line 6599 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconst0) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2260; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6600, __FILE__, __LINE__); { tree tem; tem = build_real (type, dconst1); res_op->set_value (tem); return true; } next_after_fail2260:; } else { /* #line 6602 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconst1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2261; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6603, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2261:; } else { /* #line 6605 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_equal (value, &dconstm1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2262; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6606, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_real (type, dconst1); res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2262:; } else { /* #line 6608 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2263; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6611, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_SQRTL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2263:; } else { /* #line 6613 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2264; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6617, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_CBRTL, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2264:; } } } } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_POW (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_POW; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2265; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2265:; } } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn pows = CFN_POW; { /* #line 800 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ HOST_WIDE_INT n; /* #line 801 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2266; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 802, __FILE__, __LINE__); { res_op->set_op (pows, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2266:; } } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 845 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_206 (res_op, seq, valueize, type, captures, CFN_POW, CFN_COPYSIGN)) return true; } break; } default:; } } break; case CFN_EXP: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2267; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_EXP, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2267; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2267:; } } } break; case CFN_EXP2: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2268; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_EXP2, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2268; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2268:; } } } break; case CFN_EXP10: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2269; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6122, __FILE__, __LINE__); { res_op->set_op (CFN_EXP10, type, 1); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2269; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2269:; } } } break; case CFN_SQRT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2270; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6355, __FILE__, __LINE__); { res_op->set_op (CFN_POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_real (type, dconsthalf); gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2270; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2270:; } } } break; case CFN_POW: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); if (tree_expr_nonnegative_p (_q20)) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (flag_unsafe_math_optimizations && canonicalize_math_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2271; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6363, __FILE__, __LINE__); { res_op->set_op (CFN_POW, type, 2); res_op->ops[0] = captures[0]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2271; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2271:; } } } } break; default:; } } break; case REAL_CST: { { /* #line 5927 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_210 (res_op, seq, valueize, type, captures, CFN_POW, CFN_EXP, CFN_LOG, CFN_EXP2, CFN_LOG2)) return true; } break; } default:; } if (real_onep (_p0)) { { /* #line 6213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_POW)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWIF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[1]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2272; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 808, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWIF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2272:; } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[1]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2273; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 808, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWIF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2273:; } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[2]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2274; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 854, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWIF, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2274:; } } break; } default:; } } break; default:; } } break; default:; } if (real_onep (_p0)) { { /* #line 6622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_40 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 6628 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6628 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2275; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6629, __FILE__, __LINE__); { tree tem; tem = build_real (type, dconst1); res_op->set_value (tem); return true; } next_after_fail2275:; } else { /* #line 6631 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == 1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2276; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6632, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2276:; } else { /* #line 6634 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == -1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2277; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6635, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_real (type, dconst1); res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2277:; } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWI (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[1]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2278; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 808, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWI, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2278:; } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[1]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2279; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 808, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWI, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2279:; } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[2]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2280; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 854, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWI, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2280:; } } break; } default:; } } break; default:; } } break; default:; } if (real_onep (_p0)) { { /* #line 6622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_40 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 6628 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6628 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2281; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6629, __FILE__, __LINE__); { tree tem; tem = build_real (type, dconst1); res_op->set_value (tem); return true; } next_after_fail2281:; } else { /* #line 6631 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == 1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2282; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6632, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2282:; } else { /* #line 6634 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == -1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2283; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6635, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_real (type, dconst1); res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2283:; } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_POWIL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[1]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2284; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 808, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWIL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2284:; } } break; } default:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 807 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[1]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2285; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 808, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWIL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2285:; } } break; } default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; /* #line 853 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if ((wi::to_wide (captures[2]) & 1) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2286; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 854, __FILE__, __LINE__); { res_op->set_op (CFN_BUILT_IN_POWIL, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2286:; } } break; } default:; } } break; default:; } } break; default:; } if (real_onep (_p0)) { { /* #line 6622 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_40 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 6628 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6628 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2287; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6629, __FILE__, __LINE__); { tree tem; tem = build_real (type, dconst1); res_op->set_value (tem); return true; } next_after_fail2287:; } else { /* #line 6631 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == 1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2288; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6632, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2288:; } else { /* #line 6634 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (wi::to_wide (captures[1]) == -1 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2289; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6635, __FILE__, __LINE__); { res_op->set_op (RDIV_EXPR, type, 2); res_op->ops[0] = build_real (type, dconst1); res_op->ops[1] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2289:; } } } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_HYPOTF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2290; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2290:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2291; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2291:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2292; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2292:; } break; } case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTF; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2293; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2293:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 861 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_333 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNF: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 865 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 }; if (gimple_simplify_335 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF, CFN_BUILT_IN_COPYSIGNF)) return true; } } break; default:; } } break; default:; } if (real_zerop (_p1)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF)) return true; } } if (real_zerop (_p0)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF)) return true; } } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_313 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_HYPOT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_BUILT_IN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2294; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2294:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_BUILT_IN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2295; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2295:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_BUILT_IN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2296; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2296:; } break; } case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_BUILT_IN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2297; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2297:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 861 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_333 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT, CFN_BUILT_IN_COPYSIGN)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 865 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 }; if (gimple_simplify_335 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT, CFN_BUILT_IN_COPYSIGN)) return true; } } break; default:; } } break; default:; } if (real_zerop (_p1)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT)) return true; } } if (real_zerop (_p0)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT)) return true; } } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_313 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT)) return true; } } return false; } static bool gimple_simplify_CFN_BUILT_IN_HYPOTL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2298; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2298:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2299; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2299:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2300; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2300:; } break; } case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_BUILT_IN_HYPOTL; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2301; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2301:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 861 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_333 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_COPYSIGNL: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 865 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 }; if (gimple_simplify_335 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL, CFN_BUILT_IN_COPYSIGNL)) return true; } } break; default:; } } break; default:; } if (real_zerop (_p1)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL)) return true; } } if (real_zerop (_p0)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL)) return true; } } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_313 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL)) return true; } } return false; } static bool gimple_simplify_CFN_HYPOT (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2302; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2302:; } break; } case ABS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 813 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; const combined_fn hypots = CFN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2303; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 813, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2303:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2304; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2304:; } break; } case ABS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 816 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 }; const combined_fn hypots = CFN_HYPOT; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2305; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 816, __FILE__, __LINE__); { res_op->set_op (hypots, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2305:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_call_arg (_c1, 1); _q21 = do_valueize (valueize, _q21); { /* #line 861 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_333 (res_op, seq, valueize, type, captures, CFN_HYPOT, CFN_COPYSIGN)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COPYSIGN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 865 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 }; if (gimple_simplify_335 (res_op, seq, valueize, type, captures, CFN_HYPOT, CFN_COPYSIGN)) return true; } } break; default:; } } break; default:; } if (real_zerop (_p1)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_HYPOT)) return true; } } if (real_zerop (_p0)) { { /* #line 6208 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_358 (res_op, seq, valueize, type, captures, CFN_HYPOT)) return true; } } if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0))) { { /* #line 6253 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_313 (res_op, seq, valueize, type, captures, CFN_HYPOT)) return true; } } return false; } static bool gimple_simplify_BIT_AND_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_306 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_306 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_306 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_306 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2306; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = build_all_ones_cst (type); _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2306; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2306; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2306:; } } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); 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) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2307; 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__); { res_op->set_op (BIT_AND_EXPR, type, 2); res_op->ops[0] = captures[0]; { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = build_all_ones_cst (type); _o2[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2307; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2307; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2307:; } } } } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_329 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_329 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_329 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_185 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_185 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_185 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, PLUS_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_35 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if (integer_zerop (_q51)) { { /* #line 991 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_287 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } if (integer_all_onesp (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if (integer_all_onesp (_q51)) { { /* #line 1000 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 }; if (gimple_simplify_160 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_438 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_438 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_438 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_438 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 1104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 }; /* #line 1104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2308; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1106, __FILE__, __LINE__); { res_op->set_op (BIT_XOR_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2308:; } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_450 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_XOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_453 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_329 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_329 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_329 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_185 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_185 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_185 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, MINUS_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_35 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_402 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_402 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_402 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } if (integer_zerop (_p1)) { { /* #line 1188 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2309; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2309:; } } if (integer_all_onesp (_p1)) { { /* #line 1211 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2310; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2310:; } } 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 }; if (gimple_simplify_25 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: { switch (TREE_CODE (_p1)) { case INTEGER_CST: { { /* #line 1223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 1223 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2311; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1225, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2311:; } } break; } default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_50 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_64 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_64 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_81 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { switch (TREE_CODE (_q51)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q51)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_85 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_85 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40))) { switch (TREE_CODE (_q61)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q61)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); 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 }; if (gimple_simplify_85 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_85 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_165 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_165 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_81 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_XOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_IOR_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_324 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q50)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a4); _q60 = do_valueize (valueize, _q60); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); { /* #line 1428 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 }; if (gimple_simplify_194 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } 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 }; if (gimple_simplify_16 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_IOR_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q40)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a3); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_169 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (_q50)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q50)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_77 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_485 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_461 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_65 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); switch (TREE_CODE (_q60)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q60)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case BIT_AND_EXPR: { tree _q70 = gimple_assign_rhs1 (_a4); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a4); _q71 = do_valueize (valueize, _q71); if (tree_swap_operands_p (_q70, _q71)) std::swap (_q70, _q71); 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_391 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case BIT_AND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } 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 }; if (gimple_simplify_227 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_170 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } break; } default:; } } break; default:; } { /* #line 1660 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 }; if (gimple_simplify_283 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } break; } case BIT_IOR_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2312; 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__); { res_op->set_op (BIT_IOR_EXPR, type, 2); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2312; res_op->ops[0] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2312; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2312:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } 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 }; if (gimple_simplify_351 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_q31)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q31)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_233 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR)) return true; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_28 (res_op, seq, valueize, type, captures, BIT_AND_EXPR)) return true; } } } break; } default:; } } break; default:; } { tree _p1_pops[1]; if (gimple_logical_inverted_value (_p1, _p1_pops, valueize)) { 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 }; if (gimple_simplify_392 (res_op, seq, valueize, type, captures)) return true; } } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_229 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_107 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } 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 }; if (gimple_simplify_357 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a3); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_107 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q40)) { if (gcall *_c4 = dyn_cast (_d4)) switch (gimple_call_combined_fn (_c4)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c4) == 1) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c4) == 1) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c4) == 1) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c4) == 1) { tree _q50 = gimple_call_arg (_c4, 0); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } 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 }; if (gimple_simplify_357 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } break; } default:; } } break; default:; } } break; default:; } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } } break; default:; } } break; default:; } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { 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 }; if (gimple_simplify_392 (res_op, seq, valueize, type, captures)) return true; } } } } 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 }; if (gimple_simplify_229 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_190 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_73 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_190 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_73 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_190 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_73 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2310 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 }; if (gimple_simplify_190 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2322 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 }; if (gimple_simplify_73 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } { /* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } { /* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, GT_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } if (gimple_min_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_298 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_298 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_343 (res_op, seq, valueize, type, captures)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_343 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } if (gimple_max_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_247 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_247 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_20 (res_op, seq, valueize, type, captures)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_20 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR)) return true; } { /* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } { /* #line 2390 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q51, _p0, _q21 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_332 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } if (gimple_min_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_298 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_298 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2313; 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__); { res_op->set_op (GT_EXPR, type, 2); res_op->ops[0] = captures[3]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2313; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2313:; } } } break; } default:; } } break; default:; } } if (gimple_max_value (_q21, valueize)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_247 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_247 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2331 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_305 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2336 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 }; if (gimple_simplify_250 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #line 2331 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 }; if (gimple_simplify_305 (res_op, seq, valueize, type, captures)) return true; } } } if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20))) { if (gimple_max_value (_q51, valueize)) { { /* #line 2336 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 }; if (gimple_simplify_250 (res_op, seq, valueize, type, captures)) return true; } } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21))) { if (gimple_min_value (_q51, valueize)) { { /* #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])) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2314; 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__); { res_op->set_op (GT_EXPR, type, 2); res_op->ops[0] = captures[3]; { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_int_cst (TREE_TYPE (captures[1]), 1); gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2314; res_op->ops[1] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2314:; } } } } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_202 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR)) return true; } break; } default:; } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR)) return true; } 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 }; if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR)) return true; } } break; } default:; } break; } default:; } } break; default:; } break; } default:; } break; } case LSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_6 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2315; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = build_zero_cst (TREE_TYPE (captures[1])); gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, boolean_type_node, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2315; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2315:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2316; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail2316:; } } } 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 }; if (gimple_simplify_365 (res_op, seq, valueize, type, captures, LSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case RSHIFT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_6 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q30)) { if (gcall *_c3 = dyn_cast (_d3)) switch (gimple_call_combined_fn (_c3)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c3) == 1) { tree _q40 = gimple_call_arg (_c3, 0); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } 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 }; if (gimple_simplify_365 (res_op, seq, valueize, type, captures, RSHIFT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c2) == 1) { tree _q30 = gimple_call_arg (_c2, 0); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_428 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } break; } default:; } } break; default:; } } break; default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2317; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2317; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2317; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2317:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2318; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2318; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2318; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2318:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_BSWAP16: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP32: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP64: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64)) return true; } break; } default:; } } break; case CFN_BUILT_IN_BSWAP128: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP128)) return true; } break; } default:; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2319; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2319; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2319; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2319:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case ORDERED_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20))) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case ORDERED_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2320; 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__); { res_op->set_op (ORDERED_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2320:; } } } 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 }; if (gimple_simplify_437 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_437 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case ORDERED_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_93 (res_op, seq, valueize, type, captures)) return true; } } } 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 }; if (gimple_simplify_93 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR)) return true; } } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR)) return true; } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, EQ_EXPR, GT_EXPR)) return true; } } } break; } case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR)) return true; } } } break; } case NE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR)) return true; } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR)) return true; } } } break; } case GE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case LT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR)) return true; } } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR)) return true; } } break; } case LE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR)) return true; } } } break; } case EQ_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_443 (res_op, seq, valueize, type, captures, EQ_EXPR, GT_EXPR)) return true; } } } break; } case GT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR)) return true; } } 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 }; if (gimple_simplify_241 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR)) return true; } } break; } default:; } } break; default:; } break; } case MINUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_130 (res_op, seq, valueize, type, captures, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _q21)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a3); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_130 (res_op, seq, valueize, type, captures, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_BUILT_IN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_onep (_p1)) { { /* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_366 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNT, CFN_BUILT_IN_PARITY)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_onep (_p1)) { { /* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_366 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTL, CFN_BUILT_IN_PARITYL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTLL: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_onep (_p1)) { { /* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_366 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTLL, CFN_BUILT_IN_PARITYLL)) return true; } } } break; case CFN_BUILT_IN_POPCOUNTIMAX: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_onep (_p1)) { { /* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_366 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTIMAX, CFN_BUILT_IN_PARITYIMAX)) return true; } } } break; case CFN_POPCOUNT: if (gimple_call_num_args (_c1) == 1) { tree _q20 = gimple_call_arg (_c1, 0); _q20 = do_valueize (valueize, _q20); if (integer_onep (_p1)) { { /* #line 7184 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_366 (res_op, seq, valueize, type, captures, CFN_POPCOUNT, CFN_PARITY)) return true; } } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_MIN_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MAX_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_7 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_7 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MAX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_7 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_7 (res_op, seq, valueize, type, captures)) return true; } } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_118 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_118 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2321; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2321:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2322; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2322:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2323; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2323:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2324; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2324:; } } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2325; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2325:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2326; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2326:; } } } } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_76 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_281 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2327; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2327; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2327:; } } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 3235 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_121 (res_op, seq, valueize, type, captures, MIN_EXPR, MAX_EXPR)) return true; } break; } default:; } } break; default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2328; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2328; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2328; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2328:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2329; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2329; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2329; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2329:; } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_139 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_15 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2330; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2330; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2330; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2330:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_MAX_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 }; if (gimple_simplify_177 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_177 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case MIN_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_177 (res_op, seq, valueize, type, captures)) return true; } } 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 }; if (gimple_simplify_177 (res_op, seq, valueize, type, captures)) return true; } } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_421 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); 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 }; if (gimple_simplify_421 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2331; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2331:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2332; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2332:; } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2333; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2333:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2334; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2334:; } } } break; } default:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2335; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2335:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2336; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2336:; } } } } break; } default:; } break; } CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_q20)) { case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); 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 }; if (gimple_simplify_76 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_281 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2337; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2337; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2337:; } } break; } default:; } } break; default:; } break; } case BIT_NOT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 3235 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 }; if (gimple_simplify_121 (res_op, seq, valueize, type, captures, MAX_EXPR, MIN_EXPR)) return true; } break; } default:; } } break; default:; } break; } case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2338; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2338; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2338; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2338:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2339; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2339; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2339; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2339:; } break; } default:; } } break; case ADDR_EXPR: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); 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 }; if (gimple_simplify_139 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR)) return true; } break; } default:; } 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 }; if (gimple_simplify_15 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR)) return true; } break; } default:; } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2340; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2340; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2340; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2340:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2341; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2341; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2341:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMIN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMIN)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMIN)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMIN)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2342; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAX, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2342; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2342:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINL)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINL)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINL)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2343; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXL, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2343; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2343:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF16)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF16)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF16)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2344; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF16, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2344; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2344:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2345; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF32, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2345; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2345:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2346; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF64, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2346; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2346:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2347; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF128, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2347; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2347:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32X)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32X)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2348; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF32X, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2348; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2348:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64X)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64X)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2349; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF64X, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2349; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2349:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMINF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128X)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128X)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2350; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF128X, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2350; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2350:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FMIN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_FMIN)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_FMIN)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_39 (res_op, seq, valueize, type, captures, CFN_FMIN)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2351; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_FMAX, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2351; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2351:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2352; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2352; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2352:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAX)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAX)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAX)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2353; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMIN, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2353; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2353:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2354; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINL, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2354; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2354:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF16 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF16)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF16)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF16)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2355; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF16, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2355; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2355:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF32 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2356; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF32, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2356; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2356:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF64 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2357; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF64, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2357; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2357:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF128 (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2358; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF128, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2358; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2358:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF32X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32X)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32X)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2359; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF32X, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2359; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2359:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF64X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64X)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64X)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2360; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF64X, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2360; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2360:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAXF128X (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128X)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128X)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128X)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2361; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF128X, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2361; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2361:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FMAX (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_146 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p1)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_FMAX)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 3205 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 }; if (gimple_simplify_277 (res_op, seq, valueize, type, captures, CFN_FMAX)) return true; } break; } default:; } { /* #line 3213 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_207 (res_op, seq, valueize, type, captures, CFN_FMAX)) return true; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #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]))) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2362; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), CFN_FMIN, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2362; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2362:; } } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_LROTATE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_116 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } if (integer_zerop (_p1)) { { /* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_214 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_181 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONSTRUCTOR: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_361 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } } break; case VECTOR_CST: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_382 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } case INTEGER_CST: { { /* #line 3406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2363; 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__); { res_op->set_op (RROTATE_EXPR, type, 2); res_op->ops[0] = captures[0]; res_op->ops[1] = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), build_int_cst (TREE_TYPE (captures[1]), element_precision (type)), captures[1]); res_op->resimplify (lseq, valueize); return true; } next_after_fail2363:; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_334 (res_op, seq, valueize, type, captures, LROTATE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_RROTATE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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 }; if (gimple_simplify_116 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } if (integer_zerop (_p1)) { { /* #line 3374 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _p0 }; if (gimple_simplify_214 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } if (integer_zerop (_p0)) { { /* #line 3377 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_181 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case CONSTRUCTOR: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_361 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } } break; case VECTOR_CST: { { /* #line 3383 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_382 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case RROTATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 }; if (gimple_simplify_334 (res_op, seq, valueize, type, captures, RROTATE_EXPR)) return true; } break; } default:; } break; } default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_COMPLEX_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case REALPART_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case IMAGPART_EXPR: { tree _q40 = TREE_OPERAND (gimple_assign_rhs1 (_a2), 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2364; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2364:; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_UNORDERED_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2365; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), UNORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2365; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), UNORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2365; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2365:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2366; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2366; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2366; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2366:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2367; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), UNORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2367; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2367; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2367:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, UNORDERED_EXPR)) return true; } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2368; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail2368:; } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2369; 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 tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail2369:; } } } return false; } static bool gimple_simplify_ORDERED_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2370; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), ORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2370; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), ORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2370; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2370:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2371; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2371; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2371; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2371:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2372; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), ORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2372; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), ORDERED_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2372; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2372:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, ORDERED_EXPR)) return true; } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2373; 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 tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail2373:; } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2374; 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 tem; tem = constant_boolean_node (true, type); res_op->set_value (tem); return true; } next_after_fail2374:; } } } return false; } static bool gimple_simplify_UNLT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2375; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), UNLT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2375; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), UNLT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2375; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2375:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2376; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNLT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2376; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNLT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2376; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2376:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2377; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), UNLT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2377; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNLT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2377; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2377:; } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_482 (res_op, seq, valueize, type, captures, UNLT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, UNLT_EXPR, LT_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, UNLT_EXPR, UNGT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, UNLT_EXPR, UNGT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, UNLT_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNLE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2378; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), UNLE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2378; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), UNLE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2378; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2378:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2379; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNLE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2379; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNLE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2379; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2379:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2380; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), UNLE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2380; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNLE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2380; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2380:; } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_469 (res_op, seq, valueize, type, captures, UNLE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, UNLE_EXPR, LE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, UNLE_EXPR, UNGE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, UNLE_EXPR, UNGE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, UNLE_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNGT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2381; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), UNGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2381; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), UNGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2381; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2381:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2382; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2382; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2382; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2382:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2383; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), UNGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2383; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2383; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2383:; } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_482 (res_op, seq, valueize, type, captures, UNGT_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, UNGT_EXPR, GT_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, UNGT_EXPR, UNLT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, UNGT_EXPR, UNLT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, UNGT_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNGE_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2384; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), UNGE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2384; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), UNGE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2384; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2384:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2385; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNGE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2385; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNGE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2385; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2385:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2386; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), UNGE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2386; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNGE_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2386; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2386:; } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_469 (res_op, seq, valueize, type, captures, UNGE_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, UNGE_EXPR, GE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, UNGE_EXPR, UNLE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, UNGE_EXPR, UNLE_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, UNGE_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_UNEQ_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2387; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), UNEQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2387; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), UNEQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2387; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2387:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2388; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNEQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2388; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNEQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2388; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2388:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2389; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), UNEQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2389; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), UNEQ_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2389; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2389:; } break; } default:; } } break; default:; } 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 }; if (gimple_simplify_469 (res_op, seq, valueize, type, captures, UNEQ_EXPR)) return true; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, UNEQ_EXPR, EQ_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, UNEQ_EXPR, UNEQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, UNEQ_EXPR, UNEQ_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, UNEQ_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_LTGT_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case VEC_COND_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); tree _q62 = gimple_assign_rhs3 (_a2); _q62 = do_valueize (valueize, _q62); if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20))) { { /* #line 4096 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[4]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2390; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4096, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[5]; gimple_match_op tem_op (res_op->cond.any_else (), LTGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2390; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[6]; gimple_match_op tem_op (res_op->cond.any_else (), LTGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2390; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2390:; } } break; } default:; } } break; default:; } { /* #line 4101 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2391; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4101, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[1]; { tree _o1[2], _r1; _o1[0] = captures[2]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LTGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2391; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[3]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LTGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2391; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2391:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #line 4104 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 }; gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2392; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4104, __FILE__, __LINE__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[2]; { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), LTGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2392; res_op->ops[1] = _r1; } { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), LTGT_EXPR, type, _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, NULL); if (!_r1) goto next_after_fail2392; res_op->ops[2] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2392:; } break; } default:; } } break; default:; } 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2393; 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 tem; tem = constant_boolean_node (false, type); res_op->set_value (tem); return true; } next_after_fail2393:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case FLOAT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case FLOAT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5082 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 }; if (gimple_simplify_103 (res_op, seq, valueize, type, captures, LTGT_EXPR, NE_EXPR)) return true; } break; } default:; } } break; default:; } break; } case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 5302 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 }; if (gimple_simplify_105 (res_op, seq, valueize, type, captures, LTGT_EXPR, LTGT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_288 (res_op, seq, valueize, type, captures, LTGT_EXPR, LTGT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_413 (res_op, seq, valueize, type, captures, LTGT_EXPR)) return true; } break; } default:; } return false; } static bool gimple_simplify_CFN_ADD_OVERFLOW (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 5896 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_217 (res_op, seq, valueize, type, captures, CFN_ADD_OVERFLOW)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 5903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 }; if (gimple_simplify_346 (res_op, seq, valueize, type, captures, CFN_ADD_OVERFLOW)) return true; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_SUB_OVERFLOW (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 5896 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_217 (res_op, seq, valueize, type, captures, CFN_SUB_OVERFLOW)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 5903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 }; if (gimple_simplify_346 (res_op, seq, valueize, type, captures, CFN_SUB_OVERFLOW)) return true; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_MUL_OVERFLOW (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 5896 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 }; if (gimple_simplify_217 (res_op, seq, valueize, type, captures, CFN_MUL_OVERFLOW)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 5903 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 }; if (gimple_simplify_346 (res_op, seq, valueize, type, captures, CFN_MUL_OVERFLOW)) return true; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LDEXPF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2394; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2394:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LDEXP (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2395; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2395:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_LDEXPL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2396; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2396:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_LDEXP (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2397; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2397:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBNF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2398; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2398:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2399; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2399:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBNL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2400; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2400:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBLNF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2401; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2401:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBLN (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2402; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2402:; } } break; } default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_SCALBLNL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { if (real_zerop (_p0)) { { /* #line 6234 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_349 (res_op, seq, valueize, type, captures)) return true; } } if (integer_zerop (_p1)) { { /* #line 6238 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; if (gimple_simplify_484 (res_op, seq, valueize, type, captures)) return true; } } switch (TREE_CODE (_p0)) { case REAL_CST: { { /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 }; /* #line 6242 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2403; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 6243, __FILE__, __LINE__); { tree tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2403:; } } break; } default:; } return false; } static bool gimple_simplify_TRUTH_ORIF_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2404; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2404; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2404; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2404:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2405; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2405; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2405; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2405; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2405:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2406; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2406; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2406; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2406:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2407; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2407; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2407; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2407; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2407:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2408; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2408; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2408; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2408:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2409; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2409; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2409; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2409; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2409:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2410; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2410; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2410; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2410:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2411; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2411; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2411; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2411; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2411:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2412; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2412; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2412; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2412:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2413; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2413; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2413; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2413; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2413:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2414; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2414; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2414; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2414:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2415; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2415; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2415; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2415; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2415:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2416; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2416; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2416; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2416:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2417; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2417; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2417; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2417; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2417:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2418; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2418; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2418; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2418:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2419; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2419; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2419; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2419; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2419:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_TRUTH_OR_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2420; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2420; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2420; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2420:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2421; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2421; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2421; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2421; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2421:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2422; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2422; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2422; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2422:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2423; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2423; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2423; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2423; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2423:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); switch (TREE_CODE (_q31)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2424; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2424; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2424; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2424:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2425; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2425; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2425; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2425; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2425:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2426; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2426; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2426; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2426:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2427; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2427; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2427; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2427; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2427:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2428; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2428; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2428; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2428:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2429; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2429; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2429; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2429; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2429:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2430; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2430; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2430; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2430:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2431; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2431; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2431; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2431; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2431:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q21)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q21)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case POINTER_PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); switch (TREE_CODE (_q41)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case LT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); switch (TREE_CODE (_q70)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q70)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q80 = gimple_assign_rhs1 (_a4); _q80 = do_valueize (valueize, _q80); tree _q81 = gimple_assign_rhs2 (_a4); _q81 = do_valueize (valueize, _q81); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2432; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2432; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2432; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2432:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2433; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2433; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2433; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2433; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2433:; } } } } } } } } } break; } default:; } } break; default:; } break; } case GT_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); tree _q71 = gimple_assign_rhs2 (_a3); _q71 = do_valueize (valueize, _q71); if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40))) { switch (TREE_CODE (_q71)) { case SSA_NAME: if (gimple *_d4 = get_def (valueize, _q71)) { if (gassign *_a4 = dyn_cast (_d4)) switch (gimple_assign_rhs_code (_a4)) { case POINTER_PLUS_EXPR: { tree _q90 = gimple_assign_rhs1 (_a4); _q90 = do_valueize (valueize, _q90); tree _q91 = gimple_assign_rhs2 (_a4); _q91 = do_valueize (valueize, _q91); 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 ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2434; 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__); { res_op->set_op (GT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; _o2[0] = swap_p ? captures[6] : captures[1]; _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2434; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2434; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2434:; } else { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]) || !single_use (captures[5]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2435; 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__); { res_op->set_op (GT_EXPR, type, 2); { 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); gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2435; _o2[0] = _r3; } _o2[1] = swap_p ? captures[2] : captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2435; _o1[0] = _r2; } if (sizetype != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (sizetype, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2435; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = rhs_tree; res_op->resimplify (lseq, valueize); return true; } next_after_fail2435:; } } } } } } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper code, const tree type, tree _p0, tree _p1) { switch (code.get_rep()) { case BIT_XOR_EXPR: return gimple_simplify_BIT_XOR_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case PLUS_EXPR: return gimple_simplify_PLUS_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case POINTER_PLUS_EXPR: return gimple_simplify_POINTER_PLUS_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case MINUS_EXPR: return gimple_simplify_MINUS_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case BIT_IOR_EXPR: return gimple_simplify_BIT_IOR_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case POINTER_DIFF_EXPR: return gimple_simplify_POINTER_DIFF_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case MULT_EXPR: return gimple_simplify_MULT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case EQ_EXPR: return gimple_simplify_EQ_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case NE_EXPR: return gimple_simplify_NE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGN: return gimple_simplify_CFN_BUILT_IN_COPYSIGN (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNL: return gimple_simplify_CFN_BUILT_IN_COPYSIGNL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF16: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF16 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF32: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF32 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF64: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF64 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF128: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF128 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF32X: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF32X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF64X: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF64X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_COPYSIGNF128X: return gimple_simplify_CFN_BUILT_IN_COPYSIGNF128X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_COPYSIGN: return gimple_simplify_CFN_COPYSIGN (res_op, seq, valueize, code, type, _p0, _p1); case TRUNC_DIV_EXPR: return gimple_simplify_TRUNC_DIV_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case CEIL_DIV_EXPR: return gimple_simplify_CEIL_DIV_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case FLOOR_DIV_EXPR: return gimple_simplify_FLOOR_DIV_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case ROUND_DIV_EXPR: return gimple_simplify_ROUND_DIV_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case EXACT_DIV_EXPR: return gimple_simplify_EXACT_DIV_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case FLOOR_MOD_EXPR: return gimple_simplify_FLOOR_MOD_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case RDIV_EXPR: return gimple_simplify_RDIV_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case LT_EXPR: return gimple_simplify_LT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case LE_EXPR: return gimple_simplify_LE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case GT_EXPR: return gimple_simplify_GT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case GE_EXPR: return gimple_simplify_GE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case CEIL_MOD_EXPR: return gimple_simplify_CEIL_MOD_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case ROUND_MOD_EXPR: return gimple_simplify_ROUND_MOD_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case TRUNC_MOD_EXPR: return gimple_simplify_TRUNC_MOD_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case LSHIFT_EXPR: return gimple_simplify_LSHIFT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case RSHIFT_EXPR: return gimple_simplify_RSHIFT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_POWF: return gimple_simplify_CFN_BUILT_IN_POWF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_POW: return gimple_simplify_CFN_BUILT_IN_POW (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_POWL: return gimple_simplify_CFN_BUILT_IN_POWL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_POW: return gimple_simplify_CFN_POW (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_POWIF: return gimple_simplify_CFN_BUILT_IN_POWIF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_POWI: return gimple_simplify_CFN_BUILT_IN_POWI (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_POWIL: return gimple_simplify_CFN_BUILT_IN_POWIL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_HYPOTF: return gimple_simplify_CFN_BUILT_IN_HYPOTF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_HYPOT: return gimple_simplify_CFN_BUILT_IN_HYPOT (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_HYPOTL: return gimple_simplify_CFN_BUILT_IN_HYPOTL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_HYPOT: return gimple_simplify_CFN_HYPOT (res_op, seq, valueize, code, type, _p0, _p1); case BIT_AND_EXPR: return gimple_simplify_BIT_AND_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case MIN_EXPR: return gimple_simplify_MIN_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case MAX_EXPR: return gimple_simplify_MAX_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF: return gimple_simplify_CFN_BUILT_IN_FMINF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMIN: return gimple_simplify_CFN_BUILT_IN_FMIN (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINL: return gimple_simplify_CFN_BUILT_IN_FMINL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF16: return gimple_simplify_CFN_BUILT_IN_FMINF16 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF32: return gimple_simplify_CFN_BUILT_IN_FMINF32 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF64: return gimple_simplify_CFN_BUILT_IN_FMINF64 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF128: return gimple_simplify_CFN_BUILT_IN_FMINF128 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF32X: return gimple_simplify_CFN_BUILT_IN_FMINF32X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF64X: return gimple_simplify_CFN_BUILT_IN_FMINF64X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMINF128X: return gimple_simplify_CFN_BUILT_IN_FMINF128X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_FMIN: return gimple_simplify_CFN_FMIN (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF: return gimple_simplify_CFN_BUILT_IN_FMAXF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAX: return gimple_simplify_CFN_BUILT_IN_FMAX (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXL: return gimple_simplify_CFN_BUILT_IN_FMAXL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF16: return gimple_simplify_CFN_BUILT_IN_FMAXF16 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF32: return gimple_simplify_CFN_BUILT_IN_FMAXF32 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF64: return gimple_simplify_CFN_BUILT_IN_FMAXF64 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF128: return gimple_simplify_CFN_BUILT_IN_FMAXF128 (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF32X: return gimple_simplify_CFN_BUILT_IN_FMAXF32X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF64X: return gimple_simplify_CFN_BUILT_IN_FMAXF64X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_FMAXF128X: return gimple_simplify_CFN_BUILT_IN_FMAXF128X (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_FMAX: return gimple_simplify_CFN_FMAX (res_op, seq, valueize, code, type, _p0, _p1); case LROTATE_EXPR: return gimple_simplify_LROTATE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case RROTATE_EXPR: return gimple_simplify_RROTATE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case COMPLEX_EXPR: return gimple_simplify_COMPLEX_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case UNORDERED_EXPR: return gimple_simplify_UNORDERED_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case ORDERED_EXPR: return gimple_simplify_ORDERED_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case UNLT_EXPR: return gimple_simplify_UNLT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case UNLE_EXPR: return gimple_simplify_UNLE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case UNGT_EXPR: return gimple_simplify_UNGT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case UNGE_EXPR: return gimple_simplify_UNGE_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case UNEQ_EXPR: return gimple_simplify_UNEQ_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case LTGT_EXPR: return gimple_simplify_LTGT_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_ADD_OVERFLOW: return gimple_simplify_CFN_ADD_OVERFLOW (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_SUB_OVERFLOW: return gimple_simplify_CFN_SUB_OVERFLOW (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_MUL_OVERFLOW: return gimple_simplify_CFN_MUL_OVERFLOW (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_LDEXPF: return gimple_simplify_CFN_BUILT_IN_LDEXPF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_LDEXP: return gimple_simplify_CFN_BUILT_IN_LDEXP (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_LDEXPL: return gimple_simplify_CFN_BUILT_IN_LDEXPL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_LDEXP: return gimple_simplify_CFN_LDEXP (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_SCALBNF: return gimple_simplify_CFN_BUILT_IN_SCALBNF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_SCALBN: return gimple_simplify_CFN_BUILT_IN_SCALBN (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_SCALBNL: return gimple_simplify_CFN_BUILT_IN_SCALBNL (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_SCALBLNF: return gimple_simplify_CFN_BUILT_IN_SCALBLNF (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_SCALBLN: return gimple_simplify_CFN_BUILT_IN_SCALBLN (res_op, seq, valueize, code, type, _p0, _p1); case -CFN_BUILT_IN_SCALBLNL: return gimple_simplify_CFN_BUILT_IN_SCALBLNL (res_op, seq, valueize, code, type, _p0, _p1); case TRUTH_ORIF_EXPR: return gimple_simplify_TRUTH_ORIF_EXPR (res_op, seq, valueize, code, type, _p0, _p1); case TRUTH_OR_EXPR: return gimple_simplify_TRUTH_OR_EXPR (res_op, seq, valueize, code, type, _p0, _p1); default:; } return false; } static bool gimple_simplify_COND_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2436; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail2436:; } } else { /* #line 4073 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2437; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2437:; } } } break; } default:; } switch (TREE_CODE (_p1)) { case INTEGER_CST: { switch (TREE_CODE (_p2)) { case INTEGER_CST: { { /* #line 4241 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 }; /* #line 4241 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (integer_zerop (captures[2]) ) { /* #line 4244 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (integer_onep (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2438; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4245, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; if (COMPARISON_CLASS_P (_o1[0])) { if (!seq) return false; _o1[0] = gimple_build (seq, TREE_CODE (_o1[0]), TREE_TYPE (_o1[0]), TREE_OPERAND (_o1[0], 0), TREE_OPERAND (_o1[0], 1)); } if (boolean_type_node != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (boolean_type_node, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, boolean_type_node, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2438; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2438:; } else { /* #line 4247 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && integer_pow2p (captures[1]) ) { { /* #line 4248 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree shift = build_int_cst (integer_type_node, tree_log2 (captures[1])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2439; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4251, __FILE__, __LINE__); { res_op->set_op (LSHIFT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (COMPARISON_CLASS_P (_o2[0])) { if (!seq) return false; _o2[0] = gimple_build (seq, TREE_CODE (_o2[0]), TREE_TYPE (_o2[0]), TREE_OPERAND (_o2[0], 0), TREE_OPERAND (_o2[0], 1)); } if (boolean_type_node != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (boolean_type_node, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, boolean_type_node, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2439; } else _r2 = _o2[0]; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2439; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = shift; res_op->resimplify (lseq, valueize); return true; } next_after_fail2439:; } } else { /* #line 4254 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && integer_all_onesp (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2440; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4255, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (COMPARISON_CLASS_P (_o2[0])) { if (!seq) return false; _o2[0] = gimple_build (seq, TREE_CODE (_o2[0]), TREE_TYPE (_o2[0]), TREE_OPERAND (_o2[0], 0), TREE_OPERAND (_o2[0], 1)); } if (boolean_type_node != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (boolean_type_node, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, boolean_type_node, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2440; } else _r2 = _o2[0]; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2440; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2440:; } } } } else { /* #line 4256 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (integer_zerop (captures[1]) ) { { /* #line 4257 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree booltrue = constant_boolean_node (true, boolean_type_node); /* #line 4262 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (integer_onep (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2441; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4263, __FILE__, __LINE__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; if (COMPARISON_CLASS_P (_o2[0])) { if (!seq) return false; _o2[0] = gimple_build (seq, TREE_CODE (_o2[0]), TREE_TYPE (_o2[0]), TREE_OPERAND (_o2[0], 0), TREE_OPERAND (_o2[0], 1)); } if (boolean_type_node != TREE_TYPE (_o2[0]) && !useless_type_conversion_p (boolean_type_node, TREE_TYPE (_o2[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, boolean_type_node, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2441; } else _r2 = _o2[0]; _o1[0] = _r2; } _o1[1] = booltrue; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2441; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2441:; } else { /* #line 4265 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && integer_pow2p (captures[2]) ) { { /* #line 4266 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree shift = build_int_cst (integer_type_node, tree_log2 (captures[2])); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2442; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4269, __FILE__, __LINE__); { res_op->set_op (LSHIFT_EXPR, type, 2); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; if (COMPARISON_CLASS_P (_o3[0])) { if (!seq) return false; _o3[0] = gimple_build (seq, TREE_CODE (_o3[0]), TREE_TYPE (_o3[0]), TREE_OPERAND (_o3[0], 0), TREE_OPERAND (_o3[0], 1)); } if (boolean_type_node != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (boolean_type_node, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, boolean_type_node, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2442; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = booltrue; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2442; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2442; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->ops[1] = shift; res_op->resimplify (lseq, valueize); return true; } next_after_fail2442:; } } else { /* #line 4273 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (type) && integer_all_onesp (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2443; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4274, __FILE__, __LINE__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[2], _r2; { tree _o3[1], _r3; _o3[0] = captures[0]; if (COMPARISON_CLASS_P (_o3[0])) { if (!seq) return false; _o3[0] = gimple_build (seq, TREE_CODE (_o3[0]), TREE_TYPE (_o3[0]), TREE_OPERAND (_o3[0], 0), TREE_OPERAND (_o3[0], 1)); } if (boolean_type_node != TREE_TYPE (_o3[0]) && !useless_type_conversion_p (boolean_type_node, TREE_TYPE (_o3[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, boolean_type_node, _o3[0]); tem_op.resimplify (lseq, valueize); _r3 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r3) goto next_after_fail2443; } else _r3 = _o3[0]; _o2[0] = _r3; } _o2[1] = booltrue; gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2443; _o1[0] = _r2; } if (type != TREE_TYPE (_o1[0]) && !useless_type_conversion_p (type, TREE_TYPE (_o1[0]))) { gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2443; } else _r1 = _o1[0]; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2443:; } } } } } } } break; } default:; } break; } default:; } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if (integer_onep (_q31)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a3); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_406 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a3); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d3 = get_def (valueize, _p1)) { if (gassign *_a3 = dyn_cast (_d3)) switch (gimple_assign_rhs_code (_a3)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a3); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_356 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; } case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_143 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; case LT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } } break; } case LE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } } break; } case GT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); if (integer_onep (_q31)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q70 = gimple_assign_rhs1 (_a2); _q70 = do_valueize (valueize, _q70); 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 }; if (gimple_simplify_406 (res_op, seq, valueize, type, captures)) return true; } } } break; } default:; } } break; default:; } } break; } default:; } } break; default:; } } } break; } case GE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); if (tree_swap_operands_p (_q60, _q61)) std::swap (_q60, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); tree _q61 = gimple_assign_rhs2 (_a2); _q61 = do_valueize (valueize, _q61); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } break; } default:; } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a1); _q51 = do_valueize (valueize, _q51); 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 }; if (gimple_simplify_285 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR)) return true; } break; } default:; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } } break; } case EQ_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { CASE_CONVERT: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { CASE_CONVERT: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } 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 }; if (gimple_simplify_48 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } break; } default:; } } break; } default:; } } } break; } case NE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); switch (TREE_CODE (_q21)) { case INTEGER_CST: { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_356 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; } case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_143 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; } default:; } } break; default:; } break; } default:; } } } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2444; 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__); { res_op->set_op (COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[0] = unshare_expr (res_op->ops[0]); res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2444:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a1); _q42 = do_valueize (valueize, _q42); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2445; 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__); { res_op->set_op (COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[0] = unshare_expr (res_op->ops[0]); res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2445:; } } { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2446; 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__); { res_op->set_op (COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[0] = unshare_expr (res_op->ops[0]); res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2446:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2447; 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__); { res_op->set_op (COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[0] = unshare_expr (res_op->ops[0]); res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2447:; } } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2448; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2448:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_68 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } if (integer_zerop (_p1)) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_186 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case UNEQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_42 (res_op, seq, valueize, type, captures, UNEQ_EXPR)) return true; } } break; } default:; } } break; default:; } } if (integer_zerop (_p1)) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_164 (res_op, seq, valueize, type, captures, UNEQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_95 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } if (integer_zerop (_p2)) { { /* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_37 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q20)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a2); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a2); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_292 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } break; } case LTGT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_173 (res_op, seq, valueize, type, captures, LTGT_EXPR)) return true; } } break; } default:; } } break; default:; } if (integer_zerop (_p2)) { { /* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_463 (res_op, seq, valueize, type, captures, LTGT_EXPR)) return true; } } } } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_249 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } } } if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_221 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_353 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_355 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_123 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } } } if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p1)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_221 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_353 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_240 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } break; } default:; } } break; case EQ_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_68 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } if (integer_zerop (_p1)) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_186 (res_op, seq, valueize, type, captures, EQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } } } break; } case UNEQ_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_42 (res_op, seq, valueize, type, captures, UNEQ_EXPR)) return true; } } break; } default:; } } break; default:; } } if (integer_zerop (_p1)) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_164 (res_op, seq, valueize, type, captures, UNEQ_EXPR)) return true; } } break; } default:; } } break; default:; } } } } } break; } case NE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_95 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } break; } default:; } } break; default:; } if (integer_zerop (_p2)) { { /* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_37 (res_op, seq, valueize, type, captures, NE_EXPR)) return true; } } } } switch (TREE_CODE (_q20)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _q20)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); 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 }; if (gimple_simplify_292 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } } break; } default:; } } break; default:; } } } break; } case LTGT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_173 (res_op, seq, valueize, type, captures, LTGT_EXPR)) return true; } } break; } default:; } } break; default:; } if (integer_zerop (_p2)) { { /* #line 4551 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[1] ATTRIBUTE_UNUSED = { _q20 }; if (gimple_simplify_463 (res_op, seq, valueize, type, captures, LTGT_EXPR)) return true; } } } } } } break; } case GE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_249 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } } } if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_221 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_353 (res_op, seq, valueize, type, captures, GE_EXPR)) return true; } } break; } default:; } } break; default:; } } } } break; } case GT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_355 (res_op, seq, valueize, type, captures, GT_EXPR)) return true; } } break; } default:; } } break; default:; } } } } } break; } case LE_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_123 (res_op, seq, valueize, type, captures, LE_EXPR)) return true; } } break; } default:; } } break; default:; } } } } } break; } case LT_EXPR: { tree _q20 = TREE_OPERAND (_p0, 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (_p0, 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } } } if (integer_zerop (_q21)) { switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a1); _q50 = do_valueize (valueize, _q50); 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 }; if (gimple_simplify_221 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_NOT_EXPR: { tree _q60 = gimple_assign_rhs1 (_a1); _q60 = do_valueize (valueize, _q60); 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 }; if (gimple_simplify_353 (res_op, seq, valueize, type, captures, LT_EXPR)) return true; } } break; } default:; } } 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 }; if (gimple_simplify_240 (res_op, seq, valueize, type, captures)) return true; } } break; } default:; } } } } break; } default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; if (gimple_truth_valued_p (_q20, valueize)) { { /* #line 4515 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2449; 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__); { res_op->set_op (COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2449:; } } } } return false; } static bool gimple_simplify_VEC_COND_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2450; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2450; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2450:; } } } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2451; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[1]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2451; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2451:; } } } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2452; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2452; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2452; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2452:; } } } 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[0]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2453; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[1]; { tree _o2[1], _r2; _o2[0] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2453; _o1[1] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2453; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2453:; } } } break; } default:; } } break; 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2454; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2454:; } else { /* #line 4079 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (integer_zerop (captures[0]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2455; 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 tem; tem = captures[2]; res_op->set_value (tem); return true; } next_after_fail2455:; } } } break; } default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2456; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2456; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2456:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a1); _q42 = do_valueize (valueize, _q42); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2457; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2457; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2457:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[1]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2458; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2458; _o1[0] = _r2; } _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2458; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2458:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a1); _q42 = do_valueize (valueize, _q42); 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]) ) { gimple_seq *lseq = seq; if (lseq && (!single_use (captures[2]))) lseq = NULL; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2459; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); { tree _o1[2], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2459; _o1[0] = _r2; } _o1[1] = captures[3]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2459; res_op->ops[0] = _r1; } res_op->ops[1] = captures[4]; res_op->ops[2] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2459:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2460; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2460:; } } break; } default:; } } break; 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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2461; 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__); { res_op->set_op (BIT_NOT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2461:; } else { /* #line 4231 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (integer_all_onesp (captures[1]) && integer_zerop (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2462; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2462:; } } } } break; } default:; } break; } default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a1); _q42 = do_valueize (valueize, _q42); 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2463; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2463:; } } { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2464; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2464:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_assign_rhs3 (_a1); _q32 = do_valueize (valueize, _q32); { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2465; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2465:; } } break; } default:; } } 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2466; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2466:; } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case EQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2467; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2467:; } } } break; } default:; } } break; default:; } } if (integer_zerop (_p1)) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2468; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2468:; } } } break; } default:; } } break; default:; } } } break; } case UNEQ_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2469; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2469:; } } } break; } default:; } } break; default:; } } if (integer_zerop (_p1)) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2470; 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 tem; tem = captures[1]; res_op->set_value (tem); return true; } next_after_fail2470:; } } } break; } default:; } } break; default:; } } } break; } case NE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2471; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2471:; } } } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2472; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2472:; } } } } } break; } case LTGT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); if (tree_swap_operands_p (_q20, _q21)) std::swap (_q20, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2473; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2473:; } } } break; } default:; } } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2474; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2474:; } } } } } break; } case GE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2475; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2475:; } } } break; } default:; } } break; default:; } } } break; } case GT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2476; 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__); { res_op->set_op (ABS_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2476:; } } } break; } default:; } } break; default:; } } } break; } case LE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2477; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2477; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2477; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2477:; } } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2478; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2478; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2478:; } } } } break; } default:; } } break; default:; } } } break; } case LT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); 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 SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q60 = gimple_assign_rhs1 (_a2); _q60 = do_valueize (valueize, _q60); 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); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2479; 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__); { res_op->set_op (NOP_EXPR, type, 1); { tree _o1[1], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, utype, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2479; _o1[0] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2479; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2479:; } } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2480; 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__); { res_op->set_op (NEGATE_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2480; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2480:; } } } } break; } default:; } } break; default:; } } } break; } default:; } } break; default:; } { tree _p0_pops[1]; if (gimple_logical_inverted_value (_p0, _p0_pops, valueize)) { tree _q20 = _p0_pops[0]; if (gimple_truth_valued_p (_q20, valueize)) { { /* #line 4515 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2481; 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__); { res_op->set_op (VEC_COND_EXPR, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2481:; } } } } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); { /* #line 7372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _p2 }; { /* #line 7372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7373 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_NEG), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2482; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7375, __FILE__, __LINE__); { res_op->set_op (CFN_COND_NEG, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2482:; } } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _p2 }; { /* #line 7372 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7373 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_NEG), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2483; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7375, __FILE__, __LINE__); { res_op->set_op (CFN_COND_NEG, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[2]; res_op->ops[2] = captures[3]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2483:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q40 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50 }; { /* #line 7378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7379 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_NEG), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2484; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7381, __FILE__, __LINE__); { res_op->set_op (CFN_COND_NEG, type, 3); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2484; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->ops[2] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2484:; } } } break; } default:; } } break; default:; } } break; } case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40 }; { /* #line 7378 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7379 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_NEG), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2485; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7381, __FILE__, __LINE__); { res_op->set_op (CFN_COND_NEG, type, 3); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2485; res_op->ops[0] = _r1; } res_op->ops[1] = captures[3]; res_op->ops[2] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2485:; } } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_ADD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2486; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2486; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_ADD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2486; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2486:; } } } break; } case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SUB), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2487; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2487; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SUB, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2487; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2487:; } } } break; } case MULT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MUL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2488; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2488; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MUL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2488; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2488:; } } } break; } case TRUNC_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_DIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2489; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2489; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_DIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2489; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2489:; } } } break; } case TRUNC_MOD_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MOD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2490; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2490; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MOD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2490; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2490:; } } } break; } case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_RDIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2491; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2491; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_RDIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2491; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2491:; } } } break; } case MIN_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2492; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2492; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2492; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2492:; } } } break; } case MAX_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2493; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2493; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2493; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2493:; } } } break; } case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_AND), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2494; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2494; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_AND, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2494; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2494:; } } } break; } case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_IOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2495; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2495; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_IOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2495; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2495:; } } } break; } case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_XOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2496; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2496; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_XOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2496; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2496:; } } } break; } case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2497; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2497; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2497; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2497:; } } } break; } case RSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a2); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a2); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2498; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2498; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2498; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2498:; } } } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_FMIN: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2499; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2499; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2499; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2499:; } } } } break; case CFN_FMAX: if (gimple_call_num_args (_c2) == 2) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2500; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2500; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2500; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2500:; } } } } break; default:; } } break; default:; } } break; } case PLUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_ADD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2501; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2501; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_ADD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2501; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2501:; } } } break; } case MINUS_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SUB), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2502; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2502; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SUB, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2502; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2502:; } } } break; } case MULT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MUL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2503; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2503; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MUL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2503; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2503:; } } } break; } case TRUNC_DIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_DIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2504; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2504; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_DIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2504; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2504:; } } } break; } case TRUNC_MOD_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MOD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2505; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2505; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MOD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2505; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2505:; } } } break; } case RDIV_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_RDIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2506; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2506; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_RDIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2506; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2506:; } } } break; } case MIN_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2507; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2507; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2507; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2507:; } } } break; } case MAX_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2508; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2508; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2508; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2508:; } } } break; } case BIT_AND_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_AND), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2509; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2509; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_AND, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2509; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2509:; } } } break; } case BIT_IOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_IOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2510; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2510; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_IOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2510; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2510:; } } } break; } case BIT_XOR_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_XOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2511; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2511; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_XOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2511; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2511:; } } } break; } case LSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2512; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2512; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2512; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2512:; } } } break; } case RSHIFT_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_assign_rhs2 (_a1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2513; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2513; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2513; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2513:; } } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FMIN: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2514; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2514; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2514; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2514:; } } } } break; case CFN_FMAX: if (gimple_call_num_args (_c1) == 2) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _p2 }; { /* #line 7405 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[1]); /* #line 7406 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[1]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2515; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7409, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; _o1[2] = captures[3]; { tree _o2[1], _r2; _o2[0] = captures[4]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2515; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2515; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2515:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q40 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case PLUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_ADD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2516; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2516; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2516; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_ADD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2516; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2516:; } } } break; } case MINUS_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SUB), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2517; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2517; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2517; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SUB, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2517; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2517:; } } } break; } case MULT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MUL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2518; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2518; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2518; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MUL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2518; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2518:; } } } break; } case TRUNC_DIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_DIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2519; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2519; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2519; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_DIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2519; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2519:; } } } break; } case TRUNC_MOD_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MOD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2520; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2520; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2520; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MOD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2520; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2520:; } } } break; } case RDIV_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_RDIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2521; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2521; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2521; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_RDIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2521; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2521:; } } } break; } case MIN_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2522; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2522; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2522; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2522; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2522:; } } } break; } case MAX_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2523; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2523; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2523; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2523; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2523:; } } } break; } case BIT_AND_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_AND), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2524; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2524; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2524; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_AND, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2524; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2524:; } } } break; } case BIT_IOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_IOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2525; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2525; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2525; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_IOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2525; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2525:; } } } break; } case BIT_XOR_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_XOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2526; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2526; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2526; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_XOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2526; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2526:; } } } break; } case LSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2527; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2527; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2527; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2527; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2527:; } } } break; } case RSHIFT_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_assign_rhs2 (_a2); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2528; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2528; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2528; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2528; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2528:; } } } break; } default:; } else if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_FMIN: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2529; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2529; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2529; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2529; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2529:; } } } } break; case CFN_FMAX: if (gimple_call_num_args (_c2) == 2) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2530; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2530; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2530; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2530; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2530:; } } } } break; default:; } } break; default:; } } break; } case PLUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_ADD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2531; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2531; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2531; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_ADD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2531; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2531:; } } } break; } case MINUS_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SUB), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2532; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2532; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2532; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SUB, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2532; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2532:; } } } break; } case MULT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MUL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2533; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2533; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2533; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MUL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2533; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2533:; } } } break; } case TRUNC_DIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_DIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2534; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2534; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2534; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_DIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2534; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2534:; } } } break; } case TRUNC_MOD_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MOD), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2535; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2535; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2535; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MOD, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2535; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2535:; } } } break; } case RDIV_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_RDIV), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2536; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2536; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2536; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_RDIV, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2536; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2536:; } } } break; } case MIN_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2537; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2537; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2537; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2537; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2537:; } } } break; } case MAX_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_MAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2538; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2538; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2538; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_MAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2538; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2538:; } } } break; } case BIT_AND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_AND), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2539; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2539; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2539; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_AND, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2539; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2539:; } } } break; } case BIT_IOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_IOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2540; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2540; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2540; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_IOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2540; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2540:; } } } break; } case BIT_XOR_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_XOR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2541; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2541; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2541; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_XOR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2541; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2541:; } } } break; } case LSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHL), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2542; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2542; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2542; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHL, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2542; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2542:; } } } break; } case RSHIFT_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_SHR), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2543; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2543; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2543; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_SHR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2543; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2543:; } } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FMIN: if (gimple_call_num_args (_c1) == 2) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMIN), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2544; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2544; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2544; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMIN, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2544; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2544:; } } } } break; case CFN_FMAX: if (gimple_call_num_args (_c1) == 2) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41 }; { /* #line 7412 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree op_type = TREE_TYPE (captures[2]); /* #line 7413 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (vectorized_internal_fn_supported_p (as_internal_fn (CFN_COND_FMAX), op_type) && is_truth_type_for (op_type, TREE_TYPE (captures[0])) && single_use (captures[2]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2545; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7416, __FILE__, __LINE__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[4], _r1; { tree _o2[1], _r2; _o2[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2545; _o1[0] = _r2; } _o1[1] = captures[3]; _o1[2] = captures[4]; { tree _o2[1], _r2; _o2[0] = captures[1]; gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, _o2[0]); tem_op.resimplify (lseq, valueize); _r2 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r2) goto next_after_fail2545; _o1[3] = _r2; } gimple_match_op tem_op (res_op->cond.any_else (), CFN_COND_FMAX, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2], _o1[3]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2545; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2545:; } } } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_FMA: if (gimple_call_num_args (_c2) == 3) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA)) return true; } } break; case CFN_FMS: if (gimple_call_num_args (_c2) == 3) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS)) return true; } } break; case CFN_FNMA: if (gimple_call_num_args (_c2) == 3) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA)) return true; } } break; case CFN_FNMS: if (gimple_call_num_args (_c2) == 3) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS)) return true; } } break; default:; } } break; default:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FMA: if (gimple_call_num_args (_c1) == 3) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA)) return true; } } break; case CFN_FMS: if (gimple_call_num_args (_c1) == 3) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS)) return true; } } break; case CFN_FNMA: if (gimple_call_num_args (_c1) == 3) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA)) return true; } } break; case CFN_FNMS: if (gimple_call_num_args (_c1) == 3) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); if (tree_swap_operands_p (_q30, _q31)) std::swap (_q30, _q31); { /* #line 7423 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _p2 }; if (gimple_simplify_176 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q40 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_FMA: if (gimple_call_num_args (_c2) == 3) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51, _q52 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA)) return true; } } break; case CFN_FMS: if (gimple_call_num_args (_c2) == 3) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51, _q52 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS)) return true; } } break; case CFN_FNMA: if (gimple_call_num_args (_c2) == 3) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51, _q52 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA)) return true; } } break; case CFN_FNMS: if (gimple_call_num_args (_c2) == 3) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); if (tree_swap_operands_p (_q50, _q51)) std::swap (_q50, _q51); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q50, _q51, _q52 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS)) return true; } } break; default:; } } break; default:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_FMA: if (gimple_call_num_args (_c1) == 3) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41, _q42 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA)) return true; } } break; case CFN_FMS: if (gimple_call_num_args (_c1) == 3) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41, _q42 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS)) return true; } } break; case CFN_FNMA: if (gimple_call_num_args (_c1) == 3) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41, _q42 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA)) return true; } } break; case CFN_FNMS: if (gimple_call_num_args (_c1) == 3) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); if (tree_swap_operands_p (_q40, _q41)) std::swap (_q40, _q41); { /* #line 7430 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _p2, _q40, _q41, _q42 }; if (gimple_simplify_390 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COND_ADD: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_ADD)) return true; } } } break; case CFN_COND_SUB: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_SUB)) return true; } } } break; case CFN_COND_MUL: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MUL)) return true; } } } break; case CFN_COND_DIV: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_DIV)) return true; } } } break; case CFN_COND_MOD: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MOD)) return true; } } } break; case CFN_COND_RDIV: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_RDIV)) return true; } } } break; case CFN_COND_MIN: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MIN)) return true; } } } break; case CFN_COND_MAX: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MAX)) return true; } } } break; case CFN_COND_FMIN: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_FMIN)) return true; } } } break; case CFN_COND_FMAX: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_FMAX)) return true; } } } break; case CFN_COND_AND: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_AND)) return true; } } } break; case CFN_COND_IOR: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_IOR)) return true; } } } break; case CFN_COND_XOR: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_XOR)) return true; } } } break; case CFN_COND_SHL: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_SHL)) return true; } } } break; case CFN_COND_SHR: if (gimple_call_num_args (_c2) == 4) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_SHR)) return true; } } } break; default:; } } break; default:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COND_ADD: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_ADD)) return true; } } } break; case CFN_COND_SUB: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_SUB)) return true; } } } break; case CFN_COND_MUL: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MUL)) return true; } } } break; case CFN_COND_DIV: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_DIV)) return true; } } } break; case CFN_COND_MOD: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MOD)) return true; } } } break; case CFN_COND_RDIV: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_RDIV)) return true; } } } break; case CFN_COND_MIN: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MIN)) return true; } } } break; case CFN_COND_MAX: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_MAX)) return true; } } } break; case CFN_COND_FMIN: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_FMIN)) return true; } } } break; case CFN_COND_FMAX: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_FMAX)) return true; } } } break; case CFN_COND_AND: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_AND)) return true; } } } break; case CFN_COND_IOR: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_IOR)) return true; } } } break; case CFN_COND_XOR: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_XOR)) return true; } } } break; case CFN_COND_SHL: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_SHL)) return true; } } } break; case CFN_COND_SHR: if (gimple_call_num_args (_c1) == 4) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); 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 }; if (gimple_simplify_373 (res_op, seq, valueize, type, captures, CFN_COND_SHR)) return true; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q40 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COND_ADD: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_ADD)) return true; } } break; case CFN_COND_SUB: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_SUB)) return true; } } break; case CFN_COND_MUL: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MUL)) return true; } } break; case CFN_COND_DIV: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_DIV)) return true; } } break; case CFN_COND_MOD: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MOD)) return true; } } break; case CFN_COND_RDIV: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_RDIV)) return true; } } break; case CFN_COND_MIN: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MIN)) return true; } } break; case CFN_COND_MAX: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MAX)) return true; } } break; case CFN_COND_FMIN: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_FMIN)) return true; } } break; case CFN_COND_FMAX: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_FMAX)) return true; } } break; case CFN_COND_AND: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_AND)) return true; } } break; case CFN_COND_IOR: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_IOR)) return true; } } break; case CFN_COND_XOR: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_XOR)) return true; } } break; case CFN_COND_SHL: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_SHL)) return true; } } break; case CFN_COND_SHR: if (gimple_call_num_args (_c2) == 4) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_SHR)) return true; } } break; default:; } } break; default:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COND_ADD: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_ADD)) return true; } } break; case CFN_COND_SUB: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_SUB)) return true; } } break; case CFN_COND_MUL: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MUL)) return true; } } break; case CFN_COND_DIV: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_DIV)) return true; } } break; case CFN_COND_MOD: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MOD)) return true; } } break; case CFN_COND_RDIV: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_RDIV)) return true; } } break; case CFN_COND_MIN: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MIN)) return true; } } break; case CFN_COND_MAX: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_MAX)) return true; } } break; case CFN_COND_FMIN: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_FMIN)) return true; } } break; case CFN_COND_FMAX: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_FMAX)) return true; } } break; case CFN_COND_AND: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_AND)) return true; } } break; case CFN_COND_IOR: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_IOR)) return true; } } break; case CFN_COND_XOR: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_XOR)) return true; } } break; case CFN_COND_SHL: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_SHL)) return true; } } break; case CFN_COND_SHR: if (gimple_call_num_args (_c1) == 4) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); { /* #line 7448 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43 }; if (gimple_simplify_462 (res_op, seq, valueize, type, captures, CFN_COND_SHR)) return true; } } break; default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q30 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q30) == SSA_NAME || is_gimple_min_invariant (_q30))) { _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_q30)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q30)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COND_FMA: if (gimple_call_num_args (_c2) == 5) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c2, 4); _q44 = do_valueize (valueize, _q44); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FMA)) return true; } } } break; case CFN_COND_FMS: if (gimple_call_num_args (_c2) == 5) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c2, 4); _q44 = do_valueize (valueize, _q44); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FMS)) return true; } } } break; case CFN_COND_FNMA: if (gimple_call_num_args (_c2) == 5) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c2, 4); _q44 = do_valueize (valueize, _q44); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FNMA)) return true; } } } break; case CFN_COND_FNMS: if (gimple_call_num_args (_c2) == 5) { tree _q40 = gimple_call_arg (_c2, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c2, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c2, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c2, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c2, 4); _q44 = do_valueize (valueize, _q44); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FNMS)) return true; } } } break; default:; } } break; default:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COND_FMA: if (gimple_call_num_args (_c1) == 5) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); tree _q34 = gimple_call_arg (_c1, 4); _q34 = do_valueize (valueize, _q34); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FMA)) return true; } } } break; case CFN_COND_FMS: if (gimple_call_num_args (_c1) == 5) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); tree _q34 = gimple_call_arg (_c1, 4); _q34 = do_valueize (valueize, _q34); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FMS)) return true; } } } break; case CFN_COND_FNMA: if (gimple_call_num_args (_c1) == 5) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); tree _q34 = gimple_call_arg (_c1, 4); _q34 = do_valueize (valueize, _q34); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FNMA)) return true; } } } break; case CFN_COND_FNMS: if (gimple_call_num_args (_c1) == 5) { tree _q30 = gimple_call_arg (_c1, 0); _q30 = do_valueize (valueize, _q30); tree _q31 = gimple_call_arg (_c1, 1); _q31 = do_valueize (valueize, _q31); tree _q32 = gimple_call_arg (_c1, 2); _q32 = do_valueize (valueize, _q32); tree _q33 = gimple_call_arg (_c1, 3); _q33 = do_valueize (valueize, _q33); tree _q34 = gimple_call_arg (_c1, 4); _q34 = do_valueize (valueize, _q34); 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 }; if (gimple_simplify_238 (res_op, seq, valueize, type, captures, CFN_COND_FNMS)) return true; } } } break; default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VIEW_CONVERT_EXPR: { tree _q40 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q40) == SSA_NAME || is_gimple_min_invariant (_q40))) { _q40 = do_valueize (valueize, _q40); switch (TREE_CODE (_q40)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _q40)) { if (gcall *_c2 = dyn_cast (_d2)) switch (gimple_call_combined_fn (_c2)) { case CFN_COND_FMA: if (gimple_call_num_args (_c2) == 5) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); tree _q54 = gimple_call_arg (_c2, 4); _q54 = do_valueize (valueize, _q54); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FMA)) return true; } } break; case CFN_COND_FMS: if (gimple_call_num_args (_c2) == 5) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); tree _q54 = gimple_call_arg (_c2, 4); _q54 = do_valueize (valueize, _q54); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FMS)) return true; } } break; case CFN_COND_FNMA: if (gimple_call_num_args (_c2) == 5) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); tree _q54 = gimple_call_arg (_c2, 4); _q54 = do_valueize (valueize, _q54); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FNMA)) return true; } } break; case CFN_COND_FNMS: if (gimple_call_num_args (_c2) == 5) { tree _q50 = gimple_call_arg (_c2, 0); _q50 = do_valueize (valueize, _q50); tree _q51 = gimple_call_arg (_c2, 1); _q51 = do_valueize (valueize, _q51); tree _q52 = gimple_call_arg (_c2, 2); _q52 = do_valueize (valueize, _q52); tree _q53 = gimple_call_arg (_c2, 3); _q53 = do_valueize (valueize, _q53); tree _q54 = gimple_call_arg (_c2, 4); _q54 = do_valueize (valueize, _q54); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q50, _q51, _q52, _q53, _q54 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FNMS)) return true; } } break; default:; } } break; default:; } } break; } default:; } else if (gcall *_c1 = dyn_cast (_d1)) switch (gimple_call_combined_fn (_c1)) { case CFN_COND_FMA: if (gimple_call_num_args (_c1) == 5) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c1, 4); _q44 = do_valueize (valueize, _q44); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FMA)) return true; } } break; case CFN_COND_FMS: if (gimple_call_num_args (_c1) == 5) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c1, 4); _q44 = do_valueize (valueize, _q44); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FMS)) return true; } } break; case CFN_COND_FNMA: if (gimple_call_num_args (_c1) == 5) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c1, 4); _q44 = do_valueize (valueize, _q44); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FNMA)) return true; } } break; case CFN_COND_FNMS: if (gimple_call_num_args (_c1) == 5) { tree _q40 = gimple_call_arg (_c1, 0); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_call_arg (_c1, 1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_call_arg (_c1, 2); _q42 = do_valueize (valueize, _q42); tree _q43 = gimple_call_arg (_c1, 3); _q43 = do_valueize (valueize, _q43); tree _q44 = gimple_call_arg (_c1, 4); _q44 = do_valueize (valueize, _q44); { /* #line 7462 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[7] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41, _q42, _q43, _q44 }; if (gimple_simplify_248 (res_op, seq, valueize, type, captures, CFN_COND_FNMS)) return true; } } break; default:; } } break; default:; } return false; } static bool gimple_simplify_BIT_FIELD_REF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case BIT_FIELD_REF: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); tree _q21 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 1); if ((TREE_CODE (_q21) == SSA_NAME || is_gimple_min_invariant (_q21))) { _q21 = do_valueize (valueize, _q21); tree _q22 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 2); if ((TREE_CODE (_q22) == SSA_NAME || is_gimple_min_invariant (_q22))) { _q22 = do_valueize (valueize, _q22); { /* #line 6854 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2546; 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__); { res_op->set_op (BIT_FIELD_REF, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->ops[2] = const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]); res_op->resimplify (lseq, valueize); return true; } next_after_fail2546:; } } } } break; } case VIEW_CONVERT_EXPR: { tree _q20 = TREE_OPERAND (gimple_assign_rhs1 (_a1), 0); if ((TREE_CODE (_q20) == SSA_NAME || is_gimple_min_invariant (_q20))) { _q20 = do_valueize (valueize, _q20); { /* #line 6858 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2547; 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__); { res_op->set_op (BIT_FIELD_REF, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2547:; } } break; } default:; } } 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]))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2548; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2548:; } } } { /* #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]) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2549; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2549; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2549:; } 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])))) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2550; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); { tree _o1[1], _r1; _o1[0] = captures[0]; gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2550; res_op->ops[0] = _r1; } res_op->resimplify (lseq, valueize); return true; } next_after_fail2550:; } } } else { /* #line 6875 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (type) && (! 1 || is_gimple_reg (captures[0])) && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0 && integer_zerop (captures[2])) || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN && 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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2551; 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__); { res_op->set_op (NOP_EXPR, type, 1); res_op->ops[0] = captures[0]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2551:; } } } switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2552; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail2552:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2553; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = CONSTRUCTOR_ELT (ctor, elt)->value; res_op->resimplify (lseq, valueize); return true; } next_after_fail2553:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2554; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail2554:; } } 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)); gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2555; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = res; res_op->resimplify (lseq, valueize); return true; } next_after_fail2555:; } } } } } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2556; 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 tem; tem = build_zero_cst (type); res_op->set_value (tem); return true; } next_after_fail2556:; } else { /* #line 6977 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (n == const_k ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2557; 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__); { res_op->set_op (VIEW_CONVERT_EXPR, type, 1); res_op->ops[0] = CONSTRUCTOR_ELT (ctor, idx / const_k)->value; res_op->resimplify (lseq, valueize); return true; } next_after_fail2557:; } else { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2558; 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__); { res_op->set_op (BIT_FIELD_REF, type, 3); res_op->ops[0] = CONSTRUCTOR_ELT (ctor, idx / const_k)->value; res_op->ops[1] = captures[1]; res_op->ops[2] = bitsize_int ((idx % const_k) * width); res_op->resimplify (lseq, valueize); return true; } next_after_fail2558:; } } } } } } } } } break; } case BIT_INSERT_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); tree _q21 = gimple_assign_rhs2 (_a1); _q21 = do_valueize (valueize, _q21); tree _q22 = gimple_assign_rhs3 (_a1); _q22 = do_valueize (valueize, _q22); { /* #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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2559; 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__); { res_op->set_op (BIT_FIELD_REF, type, 3); res_op->ops[0] = captures[1]; res_op->ops[1] = captures[3]; res_op->ops[2] = wide_int_to_tree (bitsizetype, wi::to_wide (captures[4]) - wi::to_wide (captures[2])); res_op->resimplify (lseq, valueize); return true; } next_after_fail2559:; } 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2560; 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__); { res_op->set_op (BIT_FIELD_REF, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[3]; res_op->ops[2] = captures[4]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2560:; } } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAF (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; if (gimple_simplify_192 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMA (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; if (gimple_simplify_192 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_BUILT_IN_FMAL (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; if (gimple_simplify_192 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FMA (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_FMA)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_256 (res_op, seq, valueize, type, captures, CFN_FMA)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; if (gimple_simplify_192 (res_op, seq, valueize, type, captures, CFN_FMA)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_171 (res_op, seq, valueize, type, captures, CFN_FMA)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FMS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_106 (res_op, seq, valueize, type, captures)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_387 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_106 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2561; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7029, __FILE__, __LINE__); { res_op->set_op (CFN_FMA, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2561:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_387 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FNMA (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_213 (res_op, seq, valueize, type, captures)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_41 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_213 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2562; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7043, __FILE__, __LINE__); { res_op->set_op (CFN_FNMS, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2562:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_41 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_CFN_FNMS (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2) { switch (TREE_CODE (_p0)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p0)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q20 = gimple_assign_rhs1 (_a1); _q20 = do_valueize (valueize, _q20); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 }; if (gimple_simplify_179 (res_op, seq, valueize, type, captures)) return true; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q50 }; if (gimple_simplify_369 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _p2 }; if (gimple_simplify_179 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q40 }; /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (canonicalize_math_after_vectorization_p () ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2563; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7057, __FILE__, __LINE__); { res_op->set_op (CFN_FNMA, type, 3); res_op->ops[0] = captures[0]; res_op->ops[1] = captures[1]; res_op->ops[2] = captures[2]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2563:; } } break; } default:; } } break; default:; } switch (TREE_CODE (_p1)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p1)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case NEGATE_EXPR: { tree _q30 = gimple_assign_rhs1 (_a1); _q30 = do_valueize (valueize, _q30); switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d2 = get_def (valueize, _p2)) { if (gassign *_a2 = dyn_cast (_d2)) switch (gimple_assign_rhs_code (_a2)) { case NEGATE_EXPR: { tree _q50 = gimple_assign_rhs1 (_a2); _q50 = do_valueize (valueize, _q50); { /* #line 7008 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q50 }; if (gimple_simplify_369 (res_op, seq, valueize, type, captures)) return true; } break; } default:; } } break; default:; } break; } default:; } } break; default:; } return false; } static bool gimple_simplify_VEC_PERM_EXPR (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), 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) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2564; 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 tem; tem = op0; res_op->set_value (tem); return true; } next_after_fail2564:; } else { /* #line 7591 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (sel.series_p (0, 1, nelts, 1) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2565; 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 tem; tem = op1; res_op->set_value (tem); return true; } next_after_fail2565:; } 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)) ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2566; 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 tem; tem = t; res_op->set_value (tem); return true; } next_after_fail2566:; } 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 ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2567; 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__); { res_op->set_op (BIT_INSERT_EXPR, type, 3); res_op->ops[0] = op0; res_op->ops[1] = ins; res_op->ops[2] = bitsize_int (at * vector_element_bits (type)); res_op->resimplify (lseq, valueize); return true; } next_after_fail2567:; } else { /* #line 7704 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ if (changed ) { gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2568; 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__); { res_op->set_op (VEC_PERM_EXPR, type, 3); res_op->ops[0] = op0; res_op->ops[1] = op1; res_op->ops[2] = op2; res_op->resimplify (lseq, valueize); return true; } next_after_fail2568:; } } } } } } } } } break; } default:; } if (gimple_vec_same_elem_p (_p0, valueize)) { 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 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2569; 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 tem; tem = captures[0]; res_op->set_value (tem); return true; } next_after_fail2569:; } } } return false; } static bool gimple_simplify (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper code, const tree type, tree _p0, tree _p1, tree _p2) { switch (code.get_rep()) { case COND_EXPR: return gimple_simplify_COND_EXPR (res_op, seq, valueize, code, type, _p0, _p1, _p2); case VEC_COND_EXPR: return gimple_simplify_VEC_COND_EXPR (res_op, seq, valueize, code, type, _p0, _p1, _p2); case BIT_FIELD_REF: return gimple_simplify_BIT_FIELD_REF (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_BUILT_IN_FMAF: return gimple_simplify_CFN_BUILT_IN_FMAF (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_BUILT_IN_FMA: return gimple_simplify_CFN_BUILT_IN_FMA (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_BUILT_IN_FMAL: return gimple_simplify_CFN_BUILT_IN_FMAL (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_FMA: return gimple_simplify_CFN_FMA (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_FMS: return gimple_simplify_CFN_FMS (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_FNMA: return gimple_simplify_CFN_FNMA (res_op, seq, valueize, code, type, _p0, _p1, _p2); case -CFN_FNMS: return gimple_simplify_CFN_FNMS (res_op, seq, valueize, code, type, _p0, _p1, _p2); case VEC_PERM_EXPR: return gimple_simplify_VEC_PERM_EXPR (res_op, seq, valueize, code, type, _p0, _p1, _p2); default:; } return false; } static bool gimple_simplify_CFN_COND_ADD (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper ARG_UNUSED (code), tree ARG_UNUSED (type) , tree _p0, tree _p1, tree _p2, tree _p3) { switch (TREE_CODE (_p2)) { case SSA_NAME: if (gimple *_d1 = get_def (valueize, _p2)) { if (gassign *_a1 = dyn_cast (_d1)) switch (gimple_assign_rhs_code (_a1)) { case VEC_COND_EXPR: { tree _q40 = gimple_assign_rhs1 (_a1); _q40 = do_valueize (valueize, _q40); tree _q41 = gimple_assign_rhs2 (_a1); _q41 = do_valueize (valueize, _q41); tree _q42 = gimple_assign_rhs3 (_a1); _q42 = do_valueize (valueize, _q42); if (integer_zerop (_q42)) { if ((_p3 == _p1 && ! TREE_SIDE_EFFECTS (_p3)) || (operand_equal_p (_p3, _p1, 0) && types_match (_p3, _p1))) { { /* #line 7477 "/home/seti/riscv-gnu-toolchain/gcc/gcc/match.pd" */ tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q40, _q41 }; gimple_seq *lseq = seq; if (__builtin_expect (!dbg_cnt (match), 0)) goto next_after_fail2570; if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 7477, __FILE__, __LINE__); { res_op->set_op (CFN_COND_ADD, type, 4); { tree _o1[2], _r1; _o1[0] = captures[0]; _o1[1] = captures[2]; gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]); tem_op.resimplify (lseq, valueize); _r1 = maybe_push_res_to_seq (&tem_op, lseq); if (!_r1) goto next_after_fail2570; res_op->ops[0] = _r1; } res_op->ops[1] = captures[1]; res_op->ops[2] = captures[3]; res_op->ops[3] = captures[1]; res_op->resimplify (lseq, valueize); return true; } next_after_fail2570:; } } } break; } default:; } } break; default:; } return false; } static bool gimple_simplify (gimple_match_op *res_op, gimple_seq *seq, tree (*valueize)(tree) ATTRIBUTE_UNUSED, code_helper code, const tree type, tree _p0, tree _p1, tree _p2, tree _p3) { switch (code.get_rep()) { case -CFN_COND_ADD: return gimple_simplify_CFN_COND_ADD (res_op, seq, valueize, code, type, _p0, _p1, _p2, _p3); default:; } return false; } static bool gimple_simplify (gimple_match_op*, gimple_seq*, tree (*)(tree), code_helper, const tree, tree, tree, tree, tree, tree) { return false; }